Auto-Increment .. überlisten

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Auto-Increment .. überlisten

Postby Makconner » 23. March 2006 15:06

Folgendes Problem…

Ich habe 2 Datenbanken… aus DB-1 werden die Daten nach der DB-2 überschrieben wenn die Daten in DB-1 nicht mehr gebraucht werden. Die DB-2 fungiert sozusagen als Archiv. Die Datensätze selbst werden mit einer ID (autoincrement) gekennzeichnet und können daher nicht mehr vergeben werden. Wenn ich sie nun in die DB-2 übertrage soll der Datensatz in DB-1 gedropt und in die DB-2 gespiegelt werden. Das ist auch alles recht einfach.. aber jetzt kommt es…

Ich will jetzt die Daten aus der DB-2 wieder zurückschreiben, und zwar genau so gespiegelt wie bei der Situation von DB-1 auf DB-2. Aber das geht ja nicht da die ID des Datensatzes ja auf Auto-increment steht und nicht reinkopiert werden kann da diese ID ja schon mal vergeben wurde und nicht mehr verwendbar ist da sie gedropt wurde.

Jetzt die Frage: Ist es möglich die Zeile (Datensatz) den ich gedropt habe wieder zu öffnen? Also kann ich die vergebene ID irgendwie wieder updaten? Da es für mich wichtig ist die ID zu behalten und keine neue zu nehmen muss ich diesen Fall irgendwie realisieren.
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby Wiedmann » 23. March 2006 15:43

Aber das geht ja nicht da die ID des Datensatzes ja auf Auto-increment steht und nicht reinkopiert werden kann da diese ID ja schon mal vergeben wurde und nicht mehr verwendbar ist da sie gedropt wurde.

Wenn du einen Datensatz aus einer Tabelle gedropt (gelöscht) hast, ist auch die ID von diesem Datensatz in dieser Tabelle nicht mehr vorhanden:
Ergo kannst du diese ID auch wieder neu in dieser Tabelle vergeben.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Makconner » 23. March 2006 17:32

Danke..
Ich hätte schwören können das Auto-increment einen Einschub der ID verweigert, aber diese Funktion ist scheinbar nur dafür da, selbst Lücken in der ID-Abfolge zu ignorieren und am Band aufzuzählen.
Nun gut.. ich hab es getestet und es geht… gut so.. Problem gelöst
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby KingCrunch » 24. March 2006 00:29

Ist richtig soweit: Die Funktion ignoriert Lücken und fügt neue Datensätze am Ende an. Afaik ist es aber so, dass man, wenn man Datensätze explizit als besimmten Datensatz integriert, dieser von der automatischen Nummerierung ausgenommen wird. Sprich: Wenn man keinen Wert angibt, wird er automatisch angehängt
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 2 guests