FinalFantasy Geschrieben 21. Januar 2004 Teilen Geschrieben 21. Januar 2004 Hi, Wie ist es eigentlich effektiver doppelte Einträge zu vermeiden, wenn ich von PHP auf MySQL zugreiffe? Vorher nen Select mit den einzufügenden Daten machen, und dann von PHP her ggf. den Insert schon verhindern? Müsste doch eigentlich auch gehen, dass ich das Feld in MySQL als Unique definiere.... Wird dann von SQL der Insert abgewiesen? Diese Methode funktioniert aber nur mit einzelnen Feldern, und nicht mit mehreren in Kombination... Oder vielleicht nur ein Select count (*) und dann Prüfen, ob schon was existiert, also das Ergebniss > 0 ist? Wie macht denn ihr das so? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Christl Geschrieben 21. Januar 2004 Teilen Geschrieben 21. Januar 2004 Original geschrieben von FinalFantasy Hi, ... Müsste doch eigentlich auch gehen, dass ich das Feld in MySQL als Unique definiere.... Wird dann von SQL der Insert abgewiesen?... Aus MySQL-Hilfe: Wenn das Schlüsselwort IGNORE in einem INSERT Statement mit vielen Reihen angegeben wird, werden alle Reihen ignoriert, die einen existerenden PRIMARY oder UNIQUE Schlüsseleintrag enthalten. Syntax:INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name [(col_name,...)] SELECT ... Sollte doch eigentlich gehen, ich mach es so.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
The_red_one Geschrieben 21. Januar 2004 Teilen Geschrieben 21. Januar 2004 Es ist auch möglich einen Primärschlüssel oder ein UniqueConstraint über mehrere Spalten zu setzen. So kann man prüfen ob die Kombination aus Spalte1, Spalte2 und Spalte3 (bis Spalte n) eindeutig ist. Wenn nicht gibts keinen Insert. Einfach wenn du einen Constaint anlegst in Klammern mehrere Spalten angeben. Fertsch! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.