Re: Replacing IDENTITY with lastval()
От | Hiroshi Inoue |
---|---|
Тема | Re: Replacing IDENTITY with lastval() |
Дата | |
Msg-id | 463CA938.6020206@tpf.co.jp обсуждение исходный текст |
Ответ на | Replacing IDENTITY with lastval() (Dmitry Samokhin <sdld@mail.ru>) |
Список | pgsql-odbc |
Dmitry Samokhin wrote: > Accordind to the release notes, "Use lastval() function to replace IDENTITY on 8.1 or later servers" was introduced inrelease 8.2.0205. This may cause incorrect results: "<...> assumes that your database does not expect any triggers to firewhen the INSERT is executed. If a trigger does fire and if that trigger adds another row to a table, the @@IDENTITY globalvariable would be set to point to that new Identity value—not the one your INSERT generated. <...> work for simplesituations, but not when your database gets more sophisticated". > See "Managing an @@IDENTITY Crisis" on MSDN (http://msdn2.microsoft.com/en-us/library/ms971502.aspx) for more details. > > The PostgreSQL documentation states that the lastval() function returns the value most recently returned by nextval inthe current session. It works the same way as the @@IDENTITY variable in MSSQL. The currval(...) function returns a valueof the explicitly specified sequence, this is exactly what we need. > > Please consider to revert the code. OK I would take care of it in 8.2.0402. regards, Hiroshi Inoue
В списке pgsql-odbc по дате отправления: