Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dodaj unikalne ograniczenie na podstawie wartości pola

Właściwie nie zdefiniować struktury warunkowe w składni DDL. Twoje pole może mieć wartość NULL lub NOT NULL - nie ma trzeciej opcji (i nie może zależeć od innego pola w strukturze )

Ale nadal możesz emulować pożądane zachowanie za pomocą wyzwalaczy. Możesz przerwać UPDATE /INSERT oświadczenie, jeśli przychodzące dane są nieprawidłowe pod względem logiki. Można to zrobić przez:

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. Catchable błąd krytyczny:obiekt klasy mysqli_stmt nie mógł zostać przekonwertowany na string

  2. MySQL łączy dwie kolumny w jedną kolumnę

  3. Policz liczbę kolejnych wizyt

  4. Jak sprawdzić, czy przycisk radiowy jest zaznaczony lub zaznaczony w jQuery?

  5. MySQL:Wiele tabel czy wiele baz danych?