Verhindern des Einfügens leerer Zeichenfolgen in MySQL mit Einschränkungen
In früheren Diskussionen wurde eine Methode zum Verhindern des Einfügens von NULL-Werten in MySQL vorgestellt . Aufgrund eines Versehens konnten jedoch trotz der Einschränkung leere Zeichenfolgen eingefügt werden. In diesem Artikel werden Möglichkeiten untersucht, dieses Problem mithilfe von Datenbankeinschränkungen anzugehen und die Datenintegrität sowohl auf der Datenbank- als auch auf der Anwendungsseite sicherzustellen.
Beachten Sie die folgende Tabellendefinition:
CREATE TABLE IF NOT EXISTS tblFoo ( foo_id int(11) NOT NULL AUTO_INCREMENT, foo_test varchar(50) NOT NULL, PRIMARY KEY (foo_id) );
Diese Definition, trotz der Durchsetzung der Die NOT NULL-Einschränkung für die foo_test-Spalte ermöglicht weiterhin das Einfügen leerer Zeichenfolgen:
INSERT INTO tblFoo (foo_test) VALUES ('');
Um dies zu verhindern, kann man einen CHECK verwenden Einschränkung. Es ist jedoch wichtig zu beachten, dass diese Art von Einschränkung vor MySQL Version 8.0 nicht unterstützt wurde. Wie im MySQL-Referenzhandbuch angegeben:
The CHECK clause is parsed but ignored by all storage engines.
Für ältere MySQL-Versionen besteht eine Problemumgehung darin, Trigger wie vorgeschlagen zu verwenden. Für zukünftige Entwicklungen kann es jedoch von Vorteil sein, Datenbanken mit erweiterter Unterstützung für Datenintegrität in Betracht zu ziehen, wie beispielsweise PostgreSQL.
Das obige ist der detaillierte Inhalt vonWie kann ich das Einfügen leerer Zeichenfolgen in MySQL-Tabellen verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!