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

check constraint virker ikke mysql

MySQL håndhæver ikke kontrolbegrænsninger.

Dette er en veldokumenteret afvigelse fra SQL-standarden. (Selvom det var uventet af den uindviede.)

Hvis du har brug for MySQL-databasen til at gennemtvinge en "check constraint", skal håndhævelsen kodes til en BEFORE INSERT og en BEFORE UPDATE udløser.

Denne note:

er begravet i MySQL Reference Manual under CREATE TABLE syntaks.

Reference:https://dev.mysql.com/doc /refman/5.5/da/create-table.html

ADVARSEL OM ENUM

En ENUM begrænser ikke "ugyldige" værdier i at blive indsat; en ugyldig værdi oversættes til en streng på nul, en advarsel udsendes, men det er ikke en fejl.

Demonstration:

CREATE TABLE foo (gen ENUM('M','F'))

INSERT INTO foo (gen) VALUES ('x')

-- Warning Code : 1265
-- Data truncated for column 'gen' at row 1

SELECT gen, CHAR_LENGTH(gen) FROM foo;

-- gen  CHAR_LENGTH(gen)  
-- ---  ----------------
--                     0


  1. @OneToMany fejl i MySQL:Kan ikke slette eller opdatere en overordnet række:en fremmed nøgle begrænsning mislykkes

  2. Bedste tilgange til grupperede løbende totaler

  3. Koden, når den køres, åbner jdbc-forbindelsen, men den udskriver ikke tabeldataene. Hvad er der galt med denne kode?

  4. Summen af ​​multiplikation af kolonner for rækker med lignende id'er i MySQL