Heim >Datenbank >MySQL-Tutorial >Wie kann ich das Einfügen leerer Zeichenfolgen in MySQL verhindern?
Während eine serverseitige Prüfung oft verwendet wird, um das Einfügen von Nullwerten zu verhindern, reicht sie möglicherweise nicht aus um zu verhindern, dass leere Zeichenfolgen eingefügt werden. Um diesem Problem zu begegnen, können Datenbankeinschränkungen eingesetzt werden.
MySQL ermöglicht die Definition von Einschränkungen, um die Daten einzuschränken, die in eine Tabelle eingefügt werden können. Eine solche Einschränkung ist die CHECK-Einschränkung, mit der Sie eine Bedingung angeben können, die von den eingefügten Daten erfüllt werden muss.
Zum Beispiel, um das Einfügen einer leeren Zeichenfolge ('') in eine Spalte mit dem Namen foo_test zu verhindern , können Sie die folgende CHECK-Einschränkung verwenden:
foo_test VARCHAR(50) NOT NULL CHECK (foo_test <> '')
Diese Einschränkung prüft, ob der Wert von foo_test nicht gleich einer leeren Zeichenfolge ist, wodurch dies effektiv untersagt wird Einfügung.
Vor MySQL Version 8.0 wurde die CHECK-Klausel jedoch im Allgemeinen von Speicher-Engines ignoriert. Um dieses Problem zu umgehen, können Sie einen Trigger erstellen, der vor dem Einfügen nach leeren Zeichenfolgen sucht:
CREATE TRIGGER before_insert_tblFoo BEFORE INSERT ON tblFoo FOR EACH ROW SET foo_test = NULL -- Replace empty string with NULL (or another default value) WHERE NEW.foo_test = '';
Dieser Trigger stellt sicher, dass alle Versuche, eine leere Zeichenfolge einzufügen, durch NULL oder einen passenderen Wert ersetzt werden.
Es ist erwähnenswert, dass PostgreSQL eine robuste Unterstützung für die Datenintegrität bietet, einschließlich CHECK-Einschränkungen. Wenn Sie erweiterte Einschränkungsfunktionen benötigen, ist PostreSQL möglicherweise eine geeignete Option.
Das obige ist der detaillierte Inhalt vonWie kann ich das Einfügen leerer Zeichenfolgen in MySQL verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!