Mysql
 sql >> база данни >  >> RDS >> Mysql

Добавете уникално ограничение въз основа на стойността на полето

Всъщност можете дане дефинирайте условни структури в DDL синтаксис. Вашето поле може да бъде или NULL или NOT NULL - няма трета опция (и тя не може да зависи от друго поле в структура )

Но все пак можете да емулирате желаното поведение чрез тригери. Можете да прекъснете UPDATE /INSERT изявление, ако входящите данни са невалидни от гледна точка на вашата логика. Това може да стане чрез:

CREATE TRIGGER `bannedOnCheck`
BEFORE INSERT ON `fa_ranking_system`.`Player`
FOR EACH ROW
BEGIN
  IF(new.IsBanned && new.BannedOn IS NULL) THEN
    SIGNAL 'Integrity check failed: can not set banned without ban date'
  END IF
END



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да вмъкна моментно JS време в MySQL

  2. Отстранете последните два знака от колона в MySQL

  3. Glassfish Admin Console хвърля java.lang.IllegalStateException при създаване на JDBC пул

  4. MySQL срещу MongoDB 1000 четения

  5. Грешка на пакети извън реда при извикване на MySQL stored proc