Получение ключа только что созданой записи

i l y a
Дата: 11.07.2004 17:34:39
необходимо в одной транзакции создать связанные записи в двух таблицах, причем во второй таблице должна быть ссылка нв только что созданую запись в первой.
Структура типа
-------------------------------------------------------
begin;
INSERT INTO MYTABLE1 (PARAM1) SELECT 1 ;
INSERT INTO MYTABLE1 (param1, mytable1_id) SELECT 1, currval('mytable1_id_seq') ;
end ;
-------------------------------------------------------
не работает.
ошибка: Доступ запрещен для последовательности mytable1_id_seq
В чем может быть дело?
centur
Дата: 12.07.2004 22:21:14
судя по ошибке - скорей всего нету 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 ;


а то похоже все в одну таблицу вставляешь
Shweik
Дата: 18.07.2004 18:12:35
Не думаю что это красивое решение, но у меня
уже пару лет в одной из баз есть правило вставляющее в резервные таблицы new.*.....