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

Il vincolo CHECK in MySQL non funziona

MySQL 8.0.16 è la prima versione che supporta i vincoli CHECK.

Leggi https://dev.mysql. com/doc/refman/8.0/en/create-table-check-constraints.html

Se utilizzi MySQL 8.0.15 o versioni precedenti, Riferimento MySQL Manuale dice:

Il CHECK La clausola viene analizzata ma ignorata da tutti i motori di archiviazione.

Prova un trigger...

mysql> delimiter //
mysql> CREATE TRIGGER trig_sd_check BEFORE INSERT ON Customer 
    -> FOR EACH ROW 
    -> BEGIN 
    -> IF NEW.SD<0 THEN 
    -> SET NEW.SD=0; 
    -> END IF; 
    -> END
    -> //
mysql> delimiter ;

Spero di esserti stato d'aiuto.