Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как узнать OID вставленной записи в Postgre 8.1
|
|||
|---|---|---|---|
|
#18+
Подскажите, кто как реализует типовую задачу получения оида нововставленой записи? В 8.1 синтаксис insert ... returning oid еще не применим, а при узнавании значения текущей последовательности после вставки, наверно можно напороться на то что перед выполнением select currval кто то еще успеет вставить строку. Как это правильно сделать? Кстати пытался в pgAdmine засунуть select в транзакцию для примера, так в результате вообще ничего не получаю. Запихал Код: plaintext 1. 2. 3. Получил Код: plaintext 1. 2. Почему discared? PS если важно - клиент PHP5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 10:32 |
|
||
|
Как узнать OID вставленной записи в Postgre 8.1
|
|||
|---|---|---|---|
|
#18+
ShadyAngelа при узнавании значения текущей последовательности после вставки, наверно можно напороться на то что перед выполнением select currval кто то еще успеет вставить строку. Узнавай nextval до вставки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 10:46 |
|
||
|
Как узнать OID вставленной записи в Postgre 8.1
|
|||
|---|---|---|---|
|
#18+
ShadyAngelнаверно можно напороться на то что перед выполнением select currval кто то еще успеет вставить строку. currval 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 whether or not other sessions have executed nextval since the current session did. если кто-то другой работает не в вашей сессии, то все будет впорядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 10:54 |
|
||
|
Как узнать OID вставленной записи в Postgre 8.1
|
|||
|---|---|---|---|
|
#18+
Сам нашел :) В PHP5 есть такая функция pg_last_oid если в нее передать результат выполнения pg_query то она вернет OID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 11:57 |
|
||
|
Как узнать OID вставленной записи в Postgre 8.1
|
|||
|---|---|---|---|
|
#18+
PostgreSQL 8.2.1 Documentation INSERT Outputs On successful completion, an INSERT command returns a command tag of the form INSERT oid count The count is the number of rows inserted. If count is exactly one, and the target table has OIDs, then oid is the OID assigned to the inserted row. Otherwise oid is zero. If the INSERT command contains a RETURNING clause, the result will be similar to that of a SELECT statement containing the columns and values defined in the RETURNING list, computed over the row(s) inserted by the command. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 15:09 |
|
||
|
Как узнать OID вставленной записи в Postgre 8.1
|
|||
|---|---|---|---|
|
#18+
Не заметел что речь только про 8.1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 15:23 |
|
||
|
Как узнать OID вставленной записи в Postgre 8.1
|
|||
|---|---|---|---|
|
#18+
ShadyAngelПодскажите, кто как реализует типовую задачу получения оида нововставленой записи? В 8.1 синтаксис insert ... returning oid еще не применим, а при узнавании значения текущей последовательности после вставки, наверно можно напороться на то что перед выполнением select currval кто то еще успеет вставить строку. А зачем вам узнавать OID? Или речь всетаки идет именно об поле с sequence, а не об системном oid'e? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 15:50 |
|
||
|
Как узнать OID вставленной записи в Postgre 8.1
|
|||
|---|---|---|---|
|
#18+
я бы избежал этих ситуаций. next_val намного универсальнее и практичнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2007, 21:05 |
|
||
|
Как узнать OID вставленной записи в Postgre 8.1
|
|||
|---|---|---|---|
|
#18+
MaximZя бы избежал этих ситуаций. next_val намного универсальнее и практичнее. это наилучший вариант для любого клиента, работающего с pg. взял next_val сделал с ним insert и у тебя на руках остался id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2007, 21:34 |
|
||
|
Как узнать OID вставленной записи в Postgre 8.1
|
|||
|---|---|---|---|
|
#18+
DeWiL MaximZя бы избежал этих ситуаций. next_val намного универсальнее и практичнее. это наилучший вариант для любого клиента, работающего с pg. взял next_val сделал с ним insert и у тебя на руках остался id Так а чем же не устраивает currval() после инсерта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2007, 15:15 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34266472&tid=2005786]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 376ms |

| 0 / 0 |
