powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Получение ключа только что созданой записи
3 сообщений из 3, страница 1 из 1
Получение ключа только что созданой записи
    #32598785
i l y a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
необходимо в одной транзакции создать связанные записи в двух таблицах, причем во второй таблице должна быть ссылка нв только что созданую запись в первой.
Структура типа
-------------------------------------------------------
begin;
INSERT INTO MYTABLE1 (PARAM1) SELECT 1 ;
INSERT INTO MYTABLE1 (param1, mytable1_id) SELECT 1, currval('mytable1_id_seq') ;
end ;
-------------------------------------------------------
не работает.
ошибка: Доступ запрещен для последовательности mytable1_id_seq
В чем может быть дело?
...
Рейтинг: 0 / 0
Получение ключа только что созданой записи
    #32600641
centur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
судя по ошибке - скорей всего нету grant на sequence.
А вообще - проще это делать триггером - на вставку в table1 срабатывает триггер который поле NEW.mytable1_id вставляет в table2
PS а код тут правильный ?
begin;
INSERT INTO MYTABLE1 (PARAM1) SELECT 1 ;
INSERT INTO MYTABLE1 (param1, mytable1_id) SELECT 1, currval('mytable1_id_seq') ;
end ;


а то похоже все в одну таблицу вставляешь
...
Рейтинг: 0 / 0
Получение ключа только что созданой записи
    #32609614
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не думаю что это красивое решение, но у меня
уже пару лет в одной из баз есть правило вставляющее в резервные таблицы new.*.....
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Получение ключа только что созданой записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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