Abbruch von MySQL INSERT-Vorgängen mit Triggern
Um doppelte Einträge in einer Tabelle basierend auf URL und Parameterzeichenfolge zu verhindern, kann ein Trigger implementiert werden . Dieser Trigger wertet aus, ob ein eingehender INSERT-Vorgang zu einem Duplikat führen würde, und löst gegebenenfalls eine Ausnahme aus oder lässt die Einfügung entsprechend zu.
Abbruch des Vorgangs
Für Für den Teil „...ABORT/Ausnahme für C# auslösen ...“ können Sie die SIGNAL-Anweisung verwenden:
SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = 'Duplicate entry: URL and parameter string already exists.';
Dadurch wird eine MySQLException ausgelöst Ihr C#-Code kann abfangen.
Einfügen zulassen
Für den Teil „... Einfügen zulassen ...“ lassen Sie einfach die SIGNAL-Anweisung weg. Das Einfügen wird wie gewohnt fortgesetzt, wenn kein doppelter Eintrag erkannt wird.
Überarbeiteter Triggercode
Hier ist der geänderte Triggercode, der sowohl die Abbruchlogik als auch die Logik zum Erlauben des Einfügens enthält :
CREATE TRIGGER urls_check_duplicates BEFORE INSERT ON urls FOR EACH ROW BEGIN DECLARE num_rows INTEGER; SELECT COUNT(*) INTO num_rows FROM urls WHERE url = NEW.url AND params = NEW.params; IF num_rows > 0 THEN SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = 'Duplicate entry: URL and parameter string already exists.'; END END
Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-INSERT-Vorgänge mithilfe von Triggern abbrechen oder zulassen, um doppelte Einträge zu verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!