Ok, en this question aprendí cómo evitar la inserción de un valor NULL. Pero, lamentablemente, una cadena vacía se está insertando de todos modos. Además de prevenir esto en el lado de PHP, me gustaría utilizar algo así como una restricción de la base de datos para evitar esto. Por supuesto, es necesario un control en el lado de la aplicación, pero me gustaría que esté en ambos lados.Estoy buscando una restricción para evitar la inserción de una cadena vacía en MySQL
Me han enseñado que cualquiera que sea la aplicación que está hablando con su base de datos, no debería ser capaz de insertar datos básicamente erróneos en ella. Así que ...
CREATE TABLE IF NOT EXISTS tblFoo (
foo_id int(11) NOT NULL AUTO_INCREMENT,
foo_test varchar(50) NOT NULL,
PRIMARY KEY (foo_id)
);
todavía permitiría que haga este inserto:
INSERT INTO tblFoo (foo_test) VALUES ('');
¿Qué me gustaría evitar.
Puedo ver su necesidad de evitar cadenas vacías y también me enseñaron a evitar que se inserten datos incorrectos en el nivel de la base de datos. Pero la experiencia me ha enseñado que necesita hacer un juicio cuidadoso de costo/beneficio basado en la complejidad de la restricción. Algunas restricciones son simples de expresar a nivel de aplicación, pero pueden volverse muy engorrosas a nivel de base de datos. Peor aún, tienden a encerrarlo completamente en un proveedor de base de datos si se excede. Solo mi $ 0.02. –