Ich entwickle eine kleine App in Pro * C, aber ich habe eine Frage mit einer der Hauptfunktionen.Lesen Sie einen Sequenzwert nach dem Einfügen mit einem Trigger?
Ich habe einen Autoinkrement-Trigger für den Bezeichner jeder Tabelle. Bevor die Zeile in die Tabelle eingefügt wird, legt der Trigger die ID der Zeile fest.
Das Problem hier ist, dass ich den Wert der Sequenz nach einem isert abrufen möchte (um die ID der Zeile einzufügen), aber was passiert, wenn zwei Transaktionen versuchen, eine Zeile einzufügen? Wenn ich die Read-Committed-Ebene verwende und die Transaktion nach dem Einfügen der Zeile festlege und den Wert abrufe, kann das zu Problemen führen. Was soll ich machen? Vielen Dank!
verwenden Wie zur Zeit den Wert zu bekommen? Durch die Abfrage nach 'currval' (in der gleichen Sitzung, auch wenn sie ausgeführt wurde), mit der' reving'-Klausel oder etwas anderem? –
Ich bekomme den Wert nach der Insert-Anweisung durch Abfragen von 'currval' –
OK, und die zwei Transaktionen, Inserts sind in verschiedenen Sitzungen? Sie sind unabhängig, 'currval' ist lokal in der Sitzung. Hast du tatsächlich ein Problem oder einfach nur herausfinden, ob das, was du tust, sicher ist? –