Autoincrement: Erhöhen des Zählers

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

MrSir
**
Beiträge: 35
Registriert: Fr, 03.06.2011 18:28

Autoincrement: Erhöhen des Zählers

Beitrag von MrSir »

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?
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Autoincrement: Erhöhen des Zählers

Beitrag von komma4 »

Ja, das ist möglich.

Wenn Du uns die verwendete Datenbank benennst, dann kann Dir sogar jemand die korrekte Syntax eines solchen Befehls mitteilen.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
MrSir
**
Beiträge: 35
Registriert: Fr, 03.06.2011 18:28

Re: Autoincrement: Erhöhen des Zählers

Beitrag von MrSir »

Hi, sry.
ist die HSQL.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Autoincrement: Erhöhen des Zählers

Beitrag von komma4 »

Code: Alles auswählen

alter table "kategorie" alter column "id" restart with  3
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
MrSir
**
Beiträge: 35
Registriert: Fr, 03.06.2011 18:28

Re: Autoincrement: Erhöhen des Zählers

Beitrag von MrSir »

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?
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Autoincrement: Erhöhen des Zählers

Beitrag von DPunch »

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"
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Autoincrement: Erhöhen des Zählers

Beitrag von komma4 »

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?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Autoincrement: Erhöhen des Zählers

Beitrag von komma4 »

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

Code: Alles auswählen

SELECT IDENTITY() FROM "meineTabelle"
ergibt hier immer 0 ?!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Autoincrement: Erhöhen des Zählers

Beitrag von DPunch »

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.
MrSir
**
Beiträge: 35
Registriert: Fr, 03.06.2011 18:28

Re: Autoincrement: Erhöhen des Zählers

Beitrag von MrSir »

"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.
Antworten