powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Выборка не возвращает только что втсавленное значение
7 сообщений из 7, страница 1 из 1
Выборка не возвращает только что втсавленное значение
    #38676275
PCContra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
WITH t(id) AS (INSERT INTO ptd.docs (d, dt, pnum) VALUES ('["4503","4505","ччч","ссс"]', '2', 5) RETURNING id)
SELECT  id, d, dt, pnum, cr, ch FROM ptd.docs ORDER BY dt



INSERT отдельно если пробовать - работает,
Почему селект не выбирает только что вставленные данные? транзацкия не подтвердилась?
...
Рейтинг: 0 / 0
Выборка не возвращает только что втсавленное значение
    #38676437
drsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PCContra,
explain analyze
...
Рейтинг: 0 / 0
Выборка не возвращает только что втсавленное значение
    #38676449
какабычна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PCContra
Код: sql
1.
2.
WITH t(id) AS (INSERT INTO ptd.docs (d, dt, pnum) VALUES ('["4503","4505","ччч","ссс"]', '2', 5) RETURNING id)
SELECT  id, d, dt, pnum, cr, ch FROM ptd.docs ORDER BY dt



INSERT отдельно если пробовать - работает,
Почему селект не выбирает только что вставленные данные? транзацкия не подтвердилась?
потому что оно ещё не вставленное , товарищ танцор

как-то так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
WITH ins(id,d, dt, pnum, cr, ch ) AS (INSERT INTO ptd.docs (d, dt, pnum) 
 VALUES ('["4503","4505","ччч","ссс"]', '2', 5)
RETURNING id,d, dt, pnum, cr, ch )
SELECT  id, d, dt, pnum, cr, ch FROM ptd.docs
UNION ALL
SELECT  id, d, dt, pnum, cr, ch FROM ins
ORDER BY dt
...
Рейтинг: 0 / 0
Выборка не возвращает только что втсавленное значение
    #38676468
biwed.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, PCContra
PCContra
Код: sql
1.
2.
WITH t(id) AS (INSERT INTO ptd.docs (d, dt, pnum) VALUES ('["4503","4505","ччч","ссс"]', '2', 5) RETURNING id)
SELECT  id, d, dt, pnum, cr, ch FROM ptd.docs ORDER BY dt



INSERT отдельно если пробовать - работает,
Почему селект не выбирает только что вставленные данные? транзацкия не подтвердилась?
Не работает потому, что собираются ключи в таблицу t, которая идет после WITH. В Select вы не объединяете с этой таблицей.

Почти аналогичный пример: http://www.biwed.ru/index.php/dobryaki/16-sql/36-obnovlenie-zapisej-tablicy-izmerenij-pri-pomoshhi-cte

С уважением,
biwed.ru
...
Рейтинг: 0 / 0
Выборка не возвращает только что втсавленное значение
    #38676658
Гость_0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PCContra, пишущие CTE работают не так как обычные, почитайте их описание в документации, там это освещено. Кратко говоря - у insert другой снапшот и select его не видит.
...
Рейтинг: 0 / 0
Выборка не возвращает только что втсавленное значение
    #38676743
какабычна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гость_0PCContra, пишущие CTE работают не так как обычные, почитайте их описание в документации, там это освещено. Кратко говоря - у insert другой снапшот и select его не видит.таки у инсерт-а и селект-а общий снапшот - на начало стейтмента. нет ?
всё что поменялось внутри стейтмента надо смотреть через RETURNING
...
Рейтинг: 0 / 0
Выборка не возвращает только что втсавленное значение
    #38683396
PCContra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и понял, что только что втсавленное значение еще не отображается в таблице, так как транзакция не закончилась. Select работает с таблицей до insert'а.
Что я сделал: разбил на два запроса.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Выборка не возвращает только что втсавленное значение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]