Datenbankabfrage
nobbi
- datenbank
Hallo,
ich habe eine Tabelle.
Einige Spalten dieser Tabelle sollen in eine andere Tabelle übertragen werden, sofern der Datensatz dort noch nicht vorhanden sind.
Ich könnte das jetzt php-mässig hinkriegen, indem ich z.B. alle Datensätze der Quelltabelle nacheinander auslese, bei jedem Datensatz nachschaue, existiert die ID schon in der Zieltabelle, wenn nein, rein damit.
Klingt nicht besonders effektiv.
Wie gehts besser?
Gruß
Hi!
Einige Spalten dieser Tabelle sollen in eine andere Tabelle übertragen werden, sofern der Datensatz dort noch nicht vorhanden sind.
Das Vorhanden-Kriterium hat einen Unique Key? Ich nehme an, dass das Kriterium die ID ist, über der ein Primary Key liegt. Der reicht auch.
Ich könnte das jetzt php-mässig hinkriegen, indem ich z.B. alle Datensätze der Quelltabelle nacheinander auslese, bei jedem Datensatz nachschaue, existiert die ID schon in der Zieltabelle, wenn nein, rein damit.
Klingt nicht besonders effektiv.
Wie gehts besser?
Einfach blind einfügen und dabei damit rechnen, dass ein Unique Constraint Error als Antwort kommen kann. Das ist dann der Fall, dass der Datensatz bereits existiert. Wenn es dich nicht interessiert, welche Datensätze davon betroffen sind, kannst du auch ein INSERT IGNORE nehmen. Das übergeht dann die vorhandenen Datensätze stillschweigend.
Lo!
Einfach blind einfügen und dabei damit rechnen, dass ein Unique Constraint Error als Antwort kommen kann. Das ist dann der Fall, dass der Datensatz bereits existiert. Wenn es dich nicht interessiert, welche Datensätze davon betroffen sind, kannst du auch ein INSERT IGNORE nehmen. Das übergeht dann die vorhandenen Datensätze stillschweigend.
Lo!
Klingt plausibel und einfach.
Vielen Dank.