Doppelte Insert Into Abfragen ignorieren
-
Hi!
Wie schaffe ich es, dass ich Insert Into Abfragen, die der User ausversehen 2 mal ausführt, nicht aufgeführt werden bzw. nichts in der Datenbank geändert wird?
-
Im einfachsten Fall, indem du einen passenden Primärschlüssel verwendest. Versucht der User Daten mit demselben Primärschlüssel anzulegen, verhindert das die Datenbank.
Wenn das nicht geht, kannst du auch einen TRIGGER BEFORE INSERT auf der Tabelle anlegen, der halt prüft, ob der Datensatz schon vorhanden ist, und wenn ja einen Fehler wirft.
-
danke, wie ist denn die Syntax für so nen TRIGGER?
-
Die Sytax ist bei jeder Datenbank anders.
Sollte aber meistens sowas wie
CREATE TRIGGER <name> BEFORE INSERT ON ...
oder so ähnlich sein.
-
mach doch direkt nach dem INSERT ein WHERE NOT EXISTS und da dann auf den PK prüfen. Falls die Abfrage doppelt ausgeführt wird, wird sie beim 2ten mal ignoriert.