Primary Key einer leeren Tabelle auf 1 zurücksetzen

Hallo Alle,

gibt es eine Möglichkeit, den Zähler des Primary Key, der auf “autoincrement” gesetzt ist, auf 1 zu setzen?

Hintergrund:
Eine DB soll in den Echtbetrieb gehen, daher möchte ich einige Tabellen leeren, und dann neu befüllen. Dabei sollte auch der Primary Key mit seiner Zählung wieder von vorne beginnen.
Ich habe zu Testzwecken nämlich schon so oft Daten importiert, dass der Zähler mittlerweile bei 14.000 ist, obwohl der Datenbestand nur 900 Datensätze umfasst.

Gibt’s da vielleicht irgendwo einen Schalter oder Trick, den ich übersehen habe?

Danke schon mal vorab

Alessandro

SET DATABASE PARAMETER und dann Selektor “Table sequence number”
Mehr dazu hier: http://doc.4d.com/4Dv15/4D/15.5/SET-DATABASE-PARAMETER.301-3577106.de.html

dass der Zähler mittlerweile bei 14.000 ist, obwohl der Datenbestand nur 900 Datensätze umfasst.

ein Primary Key sollte ein (für den Anwender) unsichtbarer interner Schlüssel sein, der die eindeutige Identifizierung eines Datensatzes erlaubt.
Er ist stets vorhanden, einmalig, wird nie geändert. Deshalb unsichtbar, weil Anwender (oft/immer) Werte in Frage stellen (warum ist der schon bei 14.000, es gibt doch keine Datensätze, ich will den Nummernkreis ändern, etc).

Sobald die Frage kommt, wie ändere ich den Wert, ist es nicht weit zu einem Regelverstoß - und somit nicht weit zu Folgefehlern/-problemen.

Deshalb sollten sichtbare (sinnvolle…) Felder, wie Rechnungsnummer, Kundennummer, Kontonummer, Sozialversicherungsnummer, etc, nie als Primary Key verwendet werden, auch wenn deren Inhalt scheinbar nutzbar wäre (vorhanden, einmalig).

Ein weiterer Grund für UUID als Primary Key.

Aber wenn man all das ignoriert, die Lösung von Herrn Epperlein beantwortet natürlich die eigentliche Frage.

Danke für den Hinweis, Herr Maul.
Mir ist die “Primary Key” Thematik schon klar. Er wird bei mir auch nur zur eindeutigen Identifikation verwendet. Ich erstelle (per Trigger) bei jeder meiner Tabellen eine Kopie der ID, die mir den ID-Wert in ein eigenes Feld kopiert, mit dem ich dann weiterarbeite.

Mir geht’s darum, dass eine leere, frisch ausgelieferte Datenbank neu zu zählen beginnen soll. Dient sozusagen nur meinem persönlichen Wohlbefinden :slight_smile:

lg