Ok, in this question Ho imparato come impedire l'inserimento di un valore NULL. Ma, sfortunatamente, una stringa vuota viene inserita comunque. Oltre a prevenire questo dal lato PHP, mi piacerebbe usare qualcosa come un vincolo del database per evitare questo. Naturalmente è necessario un controllo sul lato dell'applicazione, ma mi piacerebbe che fosse su entrambi i lati.Sto cercando un vincolo per impedire l'inserimento di una stringa vuota in MySQL
Mi viene insegnato che qualsiasi applicazione stia parlando al database, non dovrebbe essere in grado di inserire dati fondamentalmente errati. Quindi ...
CREATE TABLE IF NOT EXISTS tblFoo (
foo_id int(11) NOT NULL AUTO_INCREMENT,
foo_test varchar(50) NOT NULL,
PRIMARY KEY (foo_id)
);
sarebbe comunque mi permetterà di fare questo inserto:
INSERT INTO tblFoo (foo_test) VALUES ('');
che vorrei per prevenire.
Vedo la necessità di evitare stringhe vuote e anche a me è stato insegnato a impedire l'inserimento di dati errati a livello di database. Ma l'esperienza mi ha insegnato che è necessario fare un attento giudizio costi/benefici basato sulla complessità del vincolo. Alcuni vincoli sono semplici da esprimere a livello di applicazione, ma possono diventare molto ingombranti a livello di database. Peggio ancora, tendono a bloccarti completamente in un fornitore di database se esagerare. Solo il mio $ 0,02. –