Re: Retrieving PK of inserted row
От | Tom Lane |
---|---|
Тема | Re: Retrieving PK of inserted row |
Дата | |
Msg-id | 1834.1170169190@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Retrieving PK of inserted row ("woger151" <woger151@jqpx37.cotse.net>) |
Список | pgsql-general |
"woger151" <woger151@jqpx37.cotse.net> writes: > Reading around, I've seen the following methods discussed: > (1) Within a transation, do the INSERT, and then do a SELECT CURVAL > (2) Not necessarily within a transaction, get a candidate for the pk using > SELECT NEXTVAL, then INSERT the row. > (3) Use LASTVAL You don't need a transaction for any of these; at least not unless you're using connection-pooling code that might swap you to a different physical session at transaction boundaries. Since all of them are going to cost you two round trips to the server, it's probably about a wash performance-wise. I'd tend to go with (2) just because it requires no assumptions about anything. Even without the session-change risk, (1) and especially (3) can bite you in a sufficiently complex application: some other part of your own code could touch this or another sequence between the two steps. regards, tom lane
В списке pgsql-general по дате отправления: