Mysql
 sql >> Base de données >  >> RDS >> Mysql

La contrainte CHECK dans MySQL ne fonctionne pas

MySQL 8.0.16 est la première version qui prend en charge les contraintes CHECK.

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

Si vous utilisez MySQL 8.0.15 ou une version antérieure, la Référence MySQL Manuel dit :

Le CHECK La clause est analysée mais ignorée par tous les moteurs de stockage.

Essayez un déclencheur...

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 ;

J'espère que ça aide.