sql >> Database >  >> RDS >> Mysql

Unieke beperking toevoegen op basis van veldwaarde

Eigenlijk kun je niet definieer voorwaardelijke structuren in DDL-syntaxis. Uw veld kan ofwel NULL . zijn of NOT NULL - er is geen derde optie (en het kan niet afhankelijk zijn van een ander veld in structuur )

Maar je kunt nog steeds gewenst gedrag nabootsen via triggers. U kunt UPDATE onderbreken /INSERT verklaring als inkomende gegevens ongeldig zijn in termen van uw logica. Dat kan 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. Zoek afhankelijkheden in SQL Server:sql_expression_dependencies

  2. Hoe UPDATEXML() werkt in MariaDB

  3. MySQL DROP-DATABASE

  4. Hoe SQLite Upper() werkt