Autoincrement "abschalten" um Daten aus andere DB einzuspielen?
Moses
- datenbank
0 Sven Rautenberg0 Moses
0 Manuel B.
Hallo,
will eine bestehende Tabelle mit eindeutigen ID Zuweisungen (die dann als FK wieder in anderen Tabellen auftauchen) in eine neue MySql Datenbank einspielen.
Natürlich habe ich bei den Tabellen dieser neuen Datenbank jeden Datensatz wieder mit einer ID versehen, die mit autoincrement erstellt wird.
Diese neue Datenbank ist vor dem Update leer! Sprich auch die Tabellen werden neu erstellt, also ist vor dem Update noch keine ID vergeben.
Wie kann ich es anstellen, daß die alten IDs übernommen werden (also für die 300 Datensätze die ich einspielen will) ohne Probleme mit dem autoincrement zu haben?
Kann ich z.B. bei der neuen Tabelle die Spalte "ID" anfangs noch nicht mit autoincrement belegen. Und diese autoincrement erst nachdem ich meine vorhandenen Daten eingelesen habe verpflichtend machen. Ist es dann eindeutig ab wo autoincrement weiterzählt?
Sinn dahinter ist, daß ich ein bestehendes Listing mit Verweisen übernehmen möchte, ohne jeden einzelene Verknüpfung per Hand neu zu erstellen.
Hoffe ich habe mich klar ausgedrückt....
Und weil ich gerade dabei bin ;-)
Bekomme das Listing im folgenden Format
Hersteller 1 hat PRodukte (1,2,5,7,29)
Hersteller 2 hat Produkte (1,5,28,34)
etc.
und möchte dies natürlich in eine eindeutige Zwischentabelle speichern:
H_ID - P_ID
1 - 1
1 - 2
1 - 5
2 - 1
2 - 5
2 -28
etc.
Gibt es da ein PHPStatement (oder direkt eine MySql Befehl), der mir den String so aufschlüsselt, daß die Tabell automatisch mit den richtigen Zuordnungen aufgefüllt wird?
Dankbar für Tips und Tricks,
Moses
Moin!
Wie kann ich es anstellen, daß die alten IDs übernommen werden (also für die 300 Datensätze die ich einspielen will) ohne Probleme mit dem autoincrement zu haben?
Einfach die gewünschte ID im Datensatz angeben. Also im Prinzip einfach importieren.
Gibt es da ein PHPStatement (oder direkt eine MySql Befehl), der mir den String so aufschlüsselt, daß die Tabell automatisch mit den richtigen Zuordnungen aufgefüllt wird?
explode() trennt einen String z.B. an Kommas auf. Den Rest (SQL-Statements draus machen) mußt du selber.
- Sven Rautenberg
Einfach die gewünschte ID im Datensatz angeben. Also im Prinzip einfach importieren.
Hi,
und vielen Dank für den Hinweis.
Also kann ich obwohl das ID_Feld autoincrement ist dort die ID beim Import mit übergeben und bekomme keine Probleme - das ist ja super! Hatte schon befürchtet zwei Wochen lang nur noch zuordnungen zu kontrollieren....
Und auch danke für den hinweis auf explode() - manchmal hat man wirklich ein Brett vor'm Kopf - ja das SQL Statement bekomme ich dann (hoffentlich :-) ) schon hin....
Danke und Grüße,
Moses
Hi,
Wie kann ich es anstellen, daß die alten IDs übernommen werden (also für die 300 Datensätze die ich einspielen will) ohne Probleme mit dem autoincrement zu haben?
Indem du einfach die ID mit in die Datenbank schreibst.