Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A restrição CHECK no MySQL não está funcionando


MySQL 8.0.16 é a primeira versão que suporta restrições CHECK.

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

Se você usa o MySQL 8.0.15 ou anterior, a Referência do MySQL Manual diz:

O CHECK cláusula é analisada, mas ignorada por todos os mecanismos de armazenamento.

Tente um gatilho...
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 ;

Espero que ajude.