Heim > Datenbank > MySQL-Tutorial > Können MySQL-Trigger CHECK-Einschränkungen simulieren?

Können MySQL-Trigger CHECK-Einschränkungen simulieren?

Linda Hamilton
Freigeben: 2024-11-13 07:45:02
Original
782 Leute haben es durchsucht

Can MySQL Triggers Simulate CHECK Constraints?

Emulieren von CHECK-Einschränkungen mit MySQL-Triggern

In MySQL werden CHECK-Einschränkungen, die normalerweise zur Durchsetzung der Datenintegrität verwendet werden, wie in anderen nicht vollständig unterstützt RDBMS. Es ist jedoch möglich, ihre Funktionalität mithilfe von Triggern zu simulieren.

Ist es möglich, einen Fehler-zurückgebenden Trigger zu konstruieren?

Ja, es ist möglich, einen Trigger zu erstellen das einen Fehler zurückgibt, wenn eine angegebene Bedingung nicht erfüllt ist. Dies emuliert effektiv das Verhalten einer CHECK-Einschränkung.

Beispiel-Trigger für Updates

Um einen Trigger zu erstellen, der bei Updates einen Fehler zurückgibt, verwenden Sie die folgende Vorlage:

CREATE TRIGGER <trigger_name> BEFORE UPDATE ON <table_name>
FOR EACH ROW
BEGIN
  IF (condition_not_met) THEN
    SIGNAL SQLSTATE '45000';
    SET MESSAGE_TEXT = 'Error message';
  END IF;
END;
Nach dem Login kopieren

Zum Beispiel, um zuvor zu überprüfen, ob der Monatswert in der Tabelle „Statistik“ kleiner oder gleich 12 ist Aktualisierung:

CREATE TRIGGER chk_stats1 BEFORE UPDATE ON stats
FOR EACH ROW
BEGIN
  IF (new.month > 12) THEN
    SIGNAL SQLSTATE '45000';
    SET MESSAGE_TEXT = 'Month must be less than or equal to 12';
  END IF;
END;
Nach dem Login kopieren

Beispielauslöser für Einfügungen

Ähnlich für Einfügungen:

CREATE TRIGGER <trigger_name> BEFORE INSERT ON <table_name>
FOR EACH ROW
BEGIN
  IF (condition_not_met) THEN
    SIGNAL SQLSTATE '45000';
    SET MESSAGE_TEXT = 'Error message';
  END IF;
END;
Nach dem Login kopieren

Zum Beispiel, um den Monatswert vorher zu überprüfen Einfügen in die „Statistik“-Tabelle:

CREATE TRIGGER chk_stats BEFORE INSERT ON stats
FOR EACH ROW
BEGIN
  IF (new.month > 12) THEN
    SIGNAL SQLSTATE '45000';
    SET MESSAGE_TEXT = 'Month must be less than or equal to 12';
  END IF;
END;
Nach dem Login kopieren

Diese Trigger simulieren das Verhalten von CHECK Einschränkungen, die verhindern, dass Daten eingefügt oder aktualisiert werden, wenn die angegebenen Bedingungen verletzt werden.

Das obige ist der detaillierte Inhalt vonKönnen MySQL-Trigger CHECK-Einschränkungen simulieren?. 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