Heim >Datenbank >MySQL-Tutorial >Wie funktionieren MySQL CHECK-Einschränkungen und wie kann ich die Datenvalidierung in älteren und neueren Versionen sicherstellen?

Wie funktionieren MySQL CHECK-Einschränkungen und wie kann ich die Datenvalidierung in älteren und neueren Versionen sicherstellen?

Barbara Streisand
Barbara StreisandOriginal
2025-01-10 10:32:42344Durchsuche

How Do MySQL CHECK Constraints Work, and How Can I Ensure Data Validation in Older and Newer Versions?

CHECK-Einschränkungen in MySQL

Wenn Sie versuchen, einer MySQL-Tabelle eine CHECK-Einschränkung hinzuzufügen, kann es beim Einfügen von Daten, die gegen die Einschränkung verstoßen, zu unerwartetem Verhalten kommen. Dieser Artikel befasst sich mit den Feinheiten von CHECK-Einschränkungen in MySQL und bietet eine Lösung zur Durchsetzung der Validierung.

In früheren Versionen von MySQL (bis 8.0.15) wurden CHECK-Einschränkungen definiert, aber nicht erzwungen. Wie im MySQL-Referenzhandbuch angegeben: „Die CHECK-Klausel wird von allen Speicher-Engines analysiert, aber ignoriert.“

Lösungen für MySQL 8.0.15 und früher

Um die Datenvalidierung zu erzwingen, wenn keine native CHECK-Einschränkungsunterstützung vorhanden ist, können Sie einen Auslöser erstellen:

<code class="language-sql">DELIMITER //

CREATE TRIGGER trig_sd_check BEFORE INSERT ON Customer
FOR EACH ROW
BEGIN
  IF NEW.SD < 0 THEN
    SET NEW.SD = 0;
  END IF;
END //

DELIMITER ;</code>
Dieser Trigger fängt jede INSERT-Anweisung ab und wenn der Wert der SD-Spalte kleiner als 0 ist, wird er auf 0 geändert, um sicherzustellen, dass die Einschränkung beibehalten wird.

PRÜFEN Sie die Einschränkungen für MySQL 8.0.16 und höher

MySQL 8.0.16 führt vollständige Unterstützung für CHECK-Einschränkungen ein. Um CHECK-Einschränkungen in 8.0.16 oder höher zu definieren, verwenden Sie die folgende Syntax:

<code class="language-sql">CREATE TABLE Customer (
  SD integer CHECK (SD > 0),
  Last_Name varchar (30),
  First_Name varchar(30)
);</code>
MySQL erzwingt jetzt Einschränkungen und verhindert das Einfügen von Daten, die gegen die Einschränkungen verstoßen.

Das obige ist der detaillierte Inhalt vonWie funktionieren MySQL CHECK-Einschränkungen und wie kann ich die Datenvalidierung in älteren und neueren Versionen sicherstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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