RE : mysql's last_insert_id

Поиск
Список
Период
Сортировка
От Bruno BAGUETTE
Тема RE : mysql's last_insert_id
Дата
Msg-id !~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAATBuXKOMvlkWzD3KJN6FWLMKAAAAQAAAA5ZoowfuKFEe/E2mWA9ac3gEAAAAA@baguette.net
обсуждение исходный текст
Ответ на mysql's last_insert_id  (Michal Adamczakk <pokryfka@artland.com.pl>)
Список pgsql-general
Hello,

> how to implement mysql's last_insert_id() ?
>
> i know that seqences and oids are great.
> the one thing i miss is that they are not session specific.
> i mean selecting last_value from seqence can give me a value
> which was inserted by a different user.

Am I wrong or do you misunderstand the documentation about sequences ?

If you read the documentation about the sequences functions
(http://www.postgresql.org/docs/view.php?version=7.3&idoc=1&file=functio
ns-sequence.html), you can see that the currval functions return the
value most recently obtained by nextval for this sequence IN THE CURRENT
SESSION. (An error is reported if nextval has never been called for this
sequence in this session.) Notice that because this is returning a
session-local value, it gives a predictable answer even if other
sessions are executing nextval meanwhile.

So, if you need to do two inserts where you have to add the new added
sequence value, you can do something like :

INSERT INTO authors (pk_author_id,lastname,firstname) VALUES
(NEXTVAL('seq_author_id'),'Baguette','Bruno');
INSERT INTO books (fk_author_id,title) VALUES
(CURRVAL('seq_author_id'),'Deafness related bibliography');

Hope this helps :-)

Regards,

---------------------------------------
Bruno BAGUETTE - pgsql-ml@baguette.net


В списке pgsql-general по дате отправления:

Предыдущее
От: Robby Russell
Дата:
Сообщение: Re: SQL Command - To List Tables ?
Следующее
От: Jeffrey Melloy
Дата:
Сообщение: Re: SQL Command - To List Tables ?