Heim >Datenbank >MySQL-Tutorial >Können MySQL-Trigger verhindern, dass INSERT-Vorgänge fehlschlagen?
INSERTs mit Triggern zum Scheitern bringen
Während Trigger in MySQL Daten vor einer Einfügung oder Aktualisierung ändern können, wurde zunächst angenommen, dass dies der Fall sein könnte verhindert nicht, dass der Vorgang fehlschlägt. Weitere Untersuchungen haben jedoch ergeben, dass es Methoden gibt, um diese Funktionalität zu erreichen.
MySQL-Workaround
In den MySQL-Versionen 5.0 und 5.1 kann ein Workaround zum Abbruch eines Problems eingesetzt werden auslösen und eine Fehlermeldung ausgeben. Dabei wird versucht, auf eine nicht vorhandene Spalte zuzugreifen:
CREATE TRIGGER mytabletriggerexample BEFORE INSERT FOR EACH ROW BEGIN IF(NEW.important_value) < (fancy * dancy * calculation) THEN DECLARE dummy INT; SELECT Your meaningful error message goes here INTO dummy FROM mytable WHERE mytable.id=new.id END IF; END;
Wenn die Bedingung erfüllt ist, versucht der Trigger, die Fehlermeldung aus einer nicht vorhandenen Tabelle auszuwählen, was dazu führt, dass das Einfügen mit der bereitgestellten Nachricht fehlschlägt .
Andere RDBMS
Die Möglichkeit, eine Ausnahme innerhalb eines Triggers auszulösen und den Vorgang abzubrechen, wird nicht allgemein in allen RDBMS unterstützt. Einige Datenbanken bieten jedoch alternative Mechanismen zur Behandlung von Validierungsfehlern innerhalb von Triggern. Zum Beispiel:
Das obige ist der detaillierte Inhalt vonKönnen MySQL-Trigger verhindern, dass INSERT-Vorgänge fehlschlagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!