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 по дате отправления:

Предыдущее
От:
Дата:
Сообщение: [ psqlodbc-Bugs-1003103 ] copy_and_convert_field(...) destroys bind info for wide char varchar columns
Следующее
От: Andreas
Дата:
Сообщение: Re: Replacing IDENTITY with lastval()