FinalFantasy Geschrieben 21. Januar 2004 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?
Christl Geschrieben 21. Januar 2004 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....
The_red_one Geschrieben 21. Januar 2004 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!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden