Select Nextval in Transaktion

Hi,

ich möchte die Aktion von SELECT NEXTVAL rückgängig machen, habe es mit einer Transaktion versucht, aber auch nach einem Rollback kommt immer die neue ID. Kann ein SELECT NEXTVAL nicht in einer Transaktion rückgängig gemacht werden?

Muss ich die ID mit SETVAL explizit zurücksetzen?

Gruß Christian

In dem Fall suchst du keine Sequenzen.

Diese sind explizit nicht rückgängig zu machen. Selbst wenn du dies mit SETVAL probierst, könntest du andere Transaktionen durcheinanderbringen, die schon das nächste Resultat abgerufen haben.

Wenn du fortlaufende IDs suchst, solltest du die Tabelle locken und die nächste ID heraussuchen, alternativ die ID in einer extra Tabelle mitzählen.

Danke ads,

noch gar nicht gefragt, und die Antwort ist schon da. Das mit der Sequenz hatte ich geahnt, wollte sicher gehen.

Meine nächste Frage wäre das locken gewesen. Ich benötige die ID von einer Tabelle um in eine andere einen oder mehrere Datensätze mit Bezug auf diese ID einzufügen. Ich werde also die erste Tabelle locken, die ID holen, die Datensätze einfügen, wenn alles gut geht, die Sperre wieder aufheben.

Gruß Christian

Schau mal da vorbei: http://www.varlena.com/GeneralBits/130.php

Andreas