Seite 1 von 2
[gelöst]>Auto-Wert< nicht NULL
Verfasst: Do 21. Jul 2016, 16:20
von Miyu
Hi,
DatenbankFeld ist Primärschlüssel und Auto-Wert dadurch automatisch Integer, der erste Datensatz soll mit 1 angezählt werden und nicht 0. Also GENERATED BY DEFAULT AS IDENTITY(START WITH 1), nur wie mach ich das????
Danke.
Re: >Auto-Wert< nicht NULL
Verfasst: Do 21. Jul 2016, 16:34
von gerderich
Moin <miyu>
Forensuche ergibt:
diese Thread mit der Lösung.
Gruß
Gerd
Re: >Auto-Wert< nicht NULL
Verfasst: Do 21. Jul 2016, 18:20
von Miyu
Hmm, sry ich kapiere es immer noch nicht,
Datenbank öffnen ->Extras->SQL->SOL Befehl AuszuführendesKommando und da setze ich dann diesein?: (Tabelle heißt Tabelle1, zu ändernder Feldname ist ID )
alter table "Tabelle1" alter column "ID" identity;
alter table "Tabelle" alter column "ID" restart with 1
Ausführen, dann kommt bei Status, erfolgreich ausgeführt, wenn ich aber in die Tabelle dann gehe fängt der erste Datensatz mit Auto-Wert 0 an.
Was mache ich falsch?
Re: >Auto-Wert< nicht NULL
Verfasst: Do 21. Jul 2016, 18:46
von Freischreiber
Hallo.
fängt der erste Datensatz mit Auto-Wert 0 an
Auch noch nach einem Neustart der DB und auch, wenn du tatsächlich einen neuen Datensatz eingibst?

Und heißt deine Tabelle jetzt "Tabelle" oder "Tabelle1"?
Re: >Auto-Wert< nicht NULL
Verfasst: Do 21. Jul 2016, 19:04
von Miyu
Ja.
ich habe es jetzt nochmal versucht, mit speichern, Neustart, neuem Datensatz ...
Muss ich alle Datensätze löschen und praktisch die Tabelle leer anfangen ??
Der Name der Tabelle hat sich nicht ändert, muss ich ihn ändern oder Tabelle kopieren und mit der Kopie es versuchen?
Danke.
Re: >Auto-Wert< nicht NULL
Verfasst: Do 21. Jul 2016, 19:16
von Freischreiber
Muss ich alle Datensätze löschen und praktisch die Tabelle leer anfangen ??
Ich glaube nicht. Siehe Handbuch:
http://robert.familiegrosskopf.de/lo_hb ... einstellen
Aber vor allem solltest du die Frage noch beantworten:

Und heißt deine Tabelle jetzt "Tabelle" oder "Tabelle1"?
Der Grund für die Frage sind deine beiden SQL-Befehle. Die beziehen sich auf verschiedene Tabellen.
Gruß
Freischreiber
Re: >Auto-Wert< nicht NULL
Verfasst: Do 21. Jul 2016, 19:18
von Miyu
sry war ein schreibfehler:
alter table "Tabelle1" alter column "ID" identity;
alter table "Tabelle1" alter column "ID" restart with 1
Re: >Auto-Wert< nicht NULL
Verfasst: Do 21. Jul 2016, 19:21
von Freischreiber
Wenn es immer noch hakt, dann könntest du die Datei noch hier hochladen zum Nachschauen (gezippt oder umbenannt, odb geht nicht).
Oder warten, bis jemand wie der Autor des Handbuchs hier persönlich vorbeischaut. Das hat bei mir immer geholfen.
Gruß
Freischreiber
Re: >Auto-Wert< nicht NULL
Verfasst: Do 21. Jul 2016, 19:28
von Miyu
Es geht, vielen viel Dank!
Tabelle komplett leer ohne Inhalt angefangen: ALTER TABLE "Tabelle1" ALTER COLUMN "ID" RESTART WITH 1
und es klappt.
Man kann wohl nicht rückwärts den Auto-Wert ändern nur vom neuen Datensatz aus, wenn ich das jetzt richtig verstanden habe.
DANKE.
Re: >Auto-Wert< nicht NULL
Verfasst: Do 21. Jul 2016, 19:37
von Freischreiber
Ja, es wird die Zählung für neue Autowerte neu begonnen, bestehende Datensätze werden so nicht verändert. Dazu bräuchte man wohl ein Makro. Oder man macht es manuell.
Solange die IDs nicht als Fremdschlüssel in einer anderen Tabelle stehen, geht das problemlos. Oder falls doch, mußt du unter Extras - Beziehungen ein Update erlauben, dann wird die Änderung auch in der verbundenen Tabelle mitgemacht.
Neugierige Frage: warum soll es nicht mit 0 anfangen?
Gruß
Freischreiber