wie schaffe ich es in einer bestehenden Datenbank den Primärschlüssel neu zu nummerieren ?
die Neu zu nummerierende Tabelle steht in einer Beziehung zu einer anderen.
ZB Tabelle "Kunde" besteht aus ID, Vorname,Nachname,usw. Tabelle 2 "Rechnung" besteht aus ID, KundID, Rechnungsdatum ,usw.
wie schaffe ich es die ID vom Tabelle Kunde neu zu nummerieren ?
dazu habe ich einen Artikel gefunden
nur leider kommt da eine FehlermeldungDie Tabelle enthält bereits Daten
Führe den folgenden SQL-Befehl für das Primärschlüsselfeld "ID" über das Menü Extras > SQL aus. und lasse Dir dabei die Ausgabe der SELECT-Anweisung anzeigen:
UPDATE "Kunde" AS "a" SET "ID" = (SELECT COUNT("ID") FROM "Kunde" WHERE "ID" < "a"."ID")
Für einen Primärschlüssel, der über AutoWert weiter automatisch erstellt wird, sind zusätzliche Schritte sinnvoll. Lasse Dir im Menü Extras > SQL dabei die Ausgabe der SELECT-Anweisung anzeigen:
SELECT MAX("ID")+1 FROM "Kunde"
Füge anschließend die maximale ID in den Befehl
ALTER TABLE "Tabelle" ALTER COLUMN "ID" RESTART WITH KD1
ein und führe diesen Befehl aus.
Es wird lediglich eine fortlaufende Nummerierung benötigt
Unabhängig vom Primärschlüssel kann eine fortlaufende Nummerierung erstellt werden. Dies geschieht über eine Abfrage. Erstelle die folgende Abfrage über Abfrage in der SQL-Ansichet erstellen ...:
SELECT "a".*, (SELECT COUNT("ID") FROM "Tabelle" WHERE "ID" <= "a"."ID") AS "lfdNr." FROM "Tabelle" AS "a"
Die Abfrage ist editierbar und hat eine fortlaufende Nummerierung, die sich nach dem Primärschlüsselfeld "ID" richtet.
UPDATE "Kunde" AS "a" SET "ID" = (SELECT COUNT("ID") FROM "Kunde" WHERE "ID" < "a"."ID")
Fehlermeldung : 1: Integrity constraint violation SYS_FK_2691 table: Kommunikation
hat jemand eine Idee und kann mir helfen?
Liebe Grüße
Marco