Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie kann ich das Einfügen leerer Zeichenfolgen in MySQL-Tabellen verhindern?

Patricia Arquette
Freigeben: 2024-11-19 05:50:02
Original
260 Leute haben es durchsucht

How Can I Prevent Empty String Inserts in MySQL Tables?

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)
);
Nach dem Login kopieren

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 ('');
Nach dem Login kopieren

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.
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage