Abbrechen von INSERT-Vorgängen in MySQL-Triggern: Erzielen eindeutiger Einschränkungen für URL-Parameter-Paare
Um die Eindeutigkeit der Kombination aus URL und Parameterzeichenfolge zu erzwingen In einer MySQL-Tabelle können Trigger eingesetzt werden. Das Abbrechen von Einfügevorgängen in einem Trigger zur Vermeidung doppelter Einträge erfordert jedoch eine besondere Behandlung. Dieser Artikel führt Sie durch die Schritte zum Auslösen von Ausnahmen und zum bedingten Zulassen von Einfügungen in Ihrem Trigger.
Auslösen von Ausnahmen für C#
Um einen doppelten Eingabefehler im C#-Code zu signalisieren , können Sie die SIGNAL-Anweisung von MySQL innerhalb des Triggers verwenden. Unten finden Sie den aktualisierten Codeausschnitt für den Trigger urls_check_duplicates:
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 '45000' SET MESSAGE_TEXT = 'Duplicate URL-parameter pair found'; ELSE ... Allow insert ... END
In Ihrem C#-Code können Sie den vom Trigger ausgelösten Fehler mithilfe der MySqlException-Klasse behandeln:
try { // Execute INSERT statement } catch (MySqlException ex) { if (ex.Message.Contains("Duplicate URL-parameter pair found")) { // Handle duplicate entry error } }
Bedingte Einfügezulage
Um das Einfügen nur dann zuzulassen, wenn kein Duplikat vorhanden ist Eintrag entfernen Sie einfach den ELSE-Block im Triggercode. Der folgende Code fügt nur eindeutige URL-Parameterpaare ein:
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 '45000' SET MESSAGE_TEXT = 'Duplicate URL-parameter pair found'; END
Durch die Verwendung einer Kombination aus SIGNAL und bedingter Ausführung im Trigger können Sie die Eindeutigkeitsbeschränkung für URL-Parameterpaare in Ihrer MySQL-Tabelle effektiv erzwingen.
Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Trigger verwenden, um die Eindeutigkeit von URL-Parameter-Paaren zu erzwingen und doppelte Einträge in C# zu verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!