Hallo lolli123,
Ich möchte ein Update in einer SQL Datenbank (Firebird) für
die Spalte ‚ADR_NR‘ ausführen.
Es sollen nur die vorhandenen Zähler von 00001 +1 fortlaufend
nummeriert werden.
Sowas lässt sich leichter lösen, wenn Du ansatzweise zeigst, was in deiner DB drin steckt. Ich gehe jetzt mal vom schlimmsten Fall aus mit folgender Tabelle:
Tabelle adresse
adr\_nr int(11)
adr varchar(255)
Inhalt:
adr\_nr adr
3 alpha
7 beta
9 gamma
Du brauchst eine Spalte ADR_NR aufsteigend mit führenden Nullen, also kommt eine neue Spalte hinzu, die erstmal provisorisch ADR_NR_NEU heisst:
ALTER TABLE `adresse` ADD `adr_nr_neu` BIGINT( 6 ) UNSIGNED ZEROFILL NOT NULL AUTO\_INCREMENT PRIMARY KEY FIRST;
Die Tabelle ist jetzt so gefüllt:
adr\_nr\_neu adr\_nr adr
000001 3 alpha
000002 7 beta
000003 9 gamma
wobei die alte Spalte adr_nr überflüssig ist (also weg damit) und die neue noch falsch heisst (also umbenennen). Beides erledigen wir so:
ALTER TABLE `adresse` DROP `adr_nr`
ALTER TABLE `adresse` CHANGE `adr_nr_neu` `adr_nr` BIGINT( 6 ) UNSIGNED ZEROFILL NOT NULL AUTO\_INCREMENT
und schon haben wir das gewünschte Ergebnis, mit dem hübschen Nebeneffekt, daß sich deine ADR_NR von selbst hochzählt.
adr\_nr adr
000001 alpha
000002 beta
000003 gamma
Wenn das nicht deinen Wünschen entspricht, musst Du schon etwas konkreter werden. Und ob das alles in Firebird läuft, musst Du ausprobieren.
Viele Grüße
Marvin