Verhindern von Einfügungen und Aktualisierungen mit Triggern in MySQL
Im Gegensatz zu anderen Datenbanksystemen erzwingt MySQL keine nativen Prüfeinschränkungen. Daher ist es notwendig, nach alternativen Methoden zu suchen, um zu verhindern, dass ungültige Daten in Tabellen gelangen. Trigger bieten einen robusten Mechanismus zur Behebung dieses Problems.
Im gegebenen Beispiel möchten wir das Agenturattribut in Tabelle foo auf die Werte 1-5 beschränken. Ein naiver Ansatz würde darin bestehen, einen Trigger zu erstellen, der den Wert von new.agency überprüft, bevor er das Einfügen oder Aktualisieren zulässt. Es reicht jedoch nicht aus, die Einfügung oder Aktualisierung einfach zu ignorieren.
Eine effektivere Lösung ist die Verwendung der SIGNAL-Syntax. Indem Sie einen Fehler auslösen (z. B. SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Ihre Fehlermeldung'), können Sie die Ausführung des Vorgangs verhindern und dem Benutzer eine aussagekräftige Fehlermeldung bereitstellen.
Hier ist ein aktualisiertes Beispiel von Der Trigger verwendet die SIGNAL-Syntax:
create trigger agency_check before insert on foo for each row begin if (new.agency < 1 or new.agency > 5) then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Agency value must be between 1 and 5'; end if end
Dieser Trigger verhindert effektiv jeden Versuch, die foo-Tabelle mit einem ungültigen Agenturwert einzufügen oder zu aktualisieren.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Triggern ungültige Dateneinträge in MySQL-Tabellen verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!