sql >> Database teknologi >  >> RDS >> Mysql

Tilføj unik begrænsning baseret på feltværdi

Faktisk kan du ikke definere betingede strukturer i DDL-syntaks. Dit felt kan enten være NULL eller IKKE NULL - der er ingen tredje mulighed (og den kan ikke afhænge af et andet felt i struktur). )

Men du kan stadig efterligne ønsket adfærd via triggere. Du kan afbryde OPDATERING /INDSÆT erklæring, hvis indgående data er ugyldige i forhold til din logik. Det kan gøres 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. Adgang nægtet for bruger 'root'@'localhost' (ved hjælp af adgangskode:JA) - Ingen privilegier?

  2. Hvordan vedligeholdes fremmednøglebegrænsning på tværs af forskellige databaser?

  3. Beregn decil i MySQL baseret på totaler

  4. Sådan formindskes/renses ibdata1-fil i MySQL