Autoincrement: Erhöhen des Zählers

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Autoincrement: Erhöhen des Zählers

Re: Autoincrement: Erhöhen des Zählers

von MrSir » So, 10.07.2011 18:47

"SELECT MAX("id") FROM "tabelle""
Daran habe ich auch schon gedacht, leider funktiniert das nicht, wenn in der Tabelle nichts drin ist.

Habt vielen Dank :).
Am Anfang wollte ich dem User erlauben, die Rechnungen nur dann zu speichern, wenn er dies auch möchte -die Rechnungsnummer sollte dabei immer eindeutig sein.
Jetzt werde ich einfach jede Rechnung speichern, der User kann diese dann selber wieder löschen.

Re: Autoincrement: Erhöhen des Zählers

von DPunch » So, 10.07.2011 07:39

komma4 hat geschrieben:ergibt hier immer 0 ?!
Hmm, scheint so, als ob in der aktuellen Session der Tabelle schonmal eine Zeile eingefügt worden sein muss, danach funktioniert der Befehl soweit ich das sehe einwandfrei (3.2.1).
Ich habe den Befehl allerdings bei der HSQLDB auch noch nie in der Praxis gebraucht, insofern kann ich das jetzt nur auf 'nen schnellen Test basieren.

Re: Autoincrement: Erhöhen des Zählers

von komma4 » So, 10.07.2011 06:59

Moin,
DPunch hat geschrieben:
meine Rede...
DPunch hat geschrieben:

Code: Alles auswählen

SELECT IDENTITY() FROM "meineTabelle"
ergibt hier immer 0 ?!

Re: Autoincrement: Erhöhen des Zählers

von komma4 » So, 10.07.2011 06:58

MrSir hat geschrieben:Ich möchte den Zähler nur erhöhen und nicht ab z.B. 3 neustarten.

Code: Alles auswählen

SELECT MAX("id") FROM "tabelle"
gibt Dir die letzte vergebene ID.
Wenn diese bspw. 543 ist, dann nutzt Du den RESTART Befehl, um die ID bspw. mit 545 weiter laufen zu lassen.


MrSir hat geschrieben:Wie ermittle ich den Wert der Identity nach der Erhöhung?
Ich habe (bei der von OOo verwendeten, internen HSQLDB Version 1.8) dazu noch keinen Weg gefunden.


Ansonsten ist eine solche ID ausschliesslich ein internes Merkmal einer Tabelle... warum sollte sowas von aussen verändert werden?

Re: Autoincrement: Erhöhen des Zählers

von DPunch » So, 10.07.2011 06:52

Aloha
MrSir hat geschrieben:Ich möchte den Zähler nur erhöhen und nicht ab z.B. 3 neustarten.
Willst Du bestehende Zähler erhöhen?
Ansonsten macht der Befehl doch genau das, was Dir vorschwebt (wobei ich nicht die geringste Ahnung habe, warum jemand sowas überhaupt machen sollte).

Den letzten vergebenen Zählerwert erhältst Du per

Code: Alles auswählen

SELECT IDENTITY() FROM "meineTabelle"

Re: Autoincrement: Erhöhen des Zählers

von MrSir » Sa, 09.07.2011 20:31

Hi, danke, aber den Befehl habe ich auch schon gefunden und denke nicht, dass er der richtige ist.
Ich möchte den Zähler nur erhöhen und nicht ab z.B. 3 neustarten.

Wie ermittle ich den Wert der Identity nach der Erhöhung?

Re: Autoincrement: Erhöhen des Zählers

von komma4 » Sa, 09.07.2011 18:42

Code: Alles auswählen

alter table "kategorie" alter column "id" restart with  3

Re: Autoincrement: Erhöhen des Zählers

von MrSir » Sa, 09.07.2011 17:20

Hi, sry.
ist die HSQL.

Re: Autoincrement: Erhöhen des Zählers

von komma4 » Sa, 09.07.2011 15:51

Ja, das ist möglich.

Wenn Du uns die verwendete Datenbank benennst, dann kann Dir sogar jemand die korrekte Syntax eines solchen Befehls mitteilen.

Autoincrement: Erhöhen des Zählers

von MrSir » Sa, 09.07.2011 15:15

Hallo,
kann mir jemand sagen, ob es möglich ist, den Wert einer Identity zu erhöhen ohne eine neue Zeile hinzuzufügen und wieder zu entfernen?

Nach oben