Veröffentlicht 21. Januar 200421 j 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?
21. Januar 200421 j 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....
21. Januar 200421 j 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!
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.