sql >> Databasteknik >  >> RDS >> Mysql

Lägg till unik begränsning baserat på fältvärde

Du kan faktiskt inte definiera villkorliga strukturer i DDL-syntax. Ditt fält kan vara antingen NULL eller NOT NULL - det finns inget tredje alternativ (och det kan inte bero på ett annat fält i struktur). )

Men du kan fortfarande emulera önskat beteende via triggers. Du kan avbryta UPDATE /INSERT uttalande om inkommande data är ogiltigt i termer av din logik. Det kan göras via:

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. SQL Server Temporary Object Caching

  2. Vad betyder mysql workbench-kolumnikonerna

  3. DataTable med Ajax fungerar inte bra efter användning serverSide:sant

  4. nullvalue:Visa NULL-värden i SQLite