sql >> Base de Datos >  >> RDS >> Mysql

la restricción de verificación no funcionará mysql

MySQL no impone restricciones de verificación.

Esta es una desviación bien documentada del estándar SQL. (Aunque inesperado para los no iniciados).

Si necesita que la base de datos MySQL aplique una "restricción de verificación", la aplicación debe codificarse en un BEFORE INSERT y un BEFORE UPDATE disparador.

Esta nota:

está enterrado en el Manual de referencia de MySQL, bajo CREATE TABLE sintaxis.

Referencia:https://dev.mysql.com/doc /refman/5.5/en/create-table.html

ADVERTENCIA SOBRE ENUM

Un ENUM no restringe la inserción de valores "no válidos"; un valor no válido se traduce en una cadena de longitud cero, se emite una advertencia, pero no es un error.

Demostración:

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