Seite 1 von 1

Primärschlüssel plötzlich 7-stellig

Verfasst: Mo, 18.10.2010 10:49
von bbberti
Wenn ich einen neuen Datensatz erstelle (bin momentan bei etwa 2000 Datensätzen) wird seit kurzem ein 7-stelliger Primärschlüssel erzeugt. Da ich den Primärschlüssel für die Eingabe in andere Tabellen nutze, ist mir das zu lang; ich hätte gerne wieder vierstellige Primärschlüssel; eben Datensatz 2001, 2002 etc.
Mögliches Ereignis, das in zeitlichem Zusammenhang mit dieser Veränderung steht: Ich habe in der besagten Tabelle direkt eine Sortierung veranlasst. Ich habe schon versucht, die Indizes dieser Tabelle zu löschen, ging aber nicht.
Wer weiß, wie ich wieder zu kürzeren Primärschlüsseln komme?

Danke voraus

Berthold

Re: Primärschlüssel plötzlich 7-stellig

Verfasst: Di, 19.10.2010 13:12
von AndreasJBittner
Hallo,

wenn Du Deine DB in zip umbenennst und mal auspackst, findest Du im Verzeichnis database die Datei script, die in meinem Beispiel folgenden

Code: Alles auswählen

SET DATABASE COLLATION "German"
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE CACHED TABLE "Aufgaben"("ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,"Anmerkung" LONGVARCHAR,"AufgabenID" INTEGER,"Enddatum" DATE,"Anfangsdatum" DATE,"Beschreibung" LONGVARCHAR)
SET TABLE "Aufgaben" INDEX'80 3'
==> ALTER TABLE "Aufgaben" ALTER COLUMN "ID" RESTART WITH 3
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 60
enthält. An der mit ==> markierten Zeile siehst Du, wie der Startwert für die ID festgelegt wird. Du kannst diese Zeile auch im SQL-Fenster ausführen.
Einfacher wird sein, Urtabelle umzubenennen, die Daten zu kopieren und eine neue Tabelle alten Namens anzulegen und beim Anlegen das Häkchen bei "ID erstellen" (oder so) anklicken, dann sollten Deine Datensätze alle in die neue Tabelle eingefügt und normal aufsteigende IDs bekommen.


Grüße
Andreas

Re: Primärschlüssel plötzlich 7-stellig

Verfasst: Di, 19.10.2010 14:32
von bbberti
Herzliochen Dank, Problem mit SQL-Befehl gelöst.