LINUX.ORG.RU

В оракле, например, можно было сказать insert into table1(field2,field3) value (value1,value2) returning field1 into variable1;

no-dashi ★★★★★
()

Если не использовать returning,
то можно вот так...(на PL/SQL написано)

declare
new_id number;

другие_мои_перемнные
begin
-- Новый ID
select seq_name.nextval into new_id from dual;

insert into table(id, <список полей>)
values(new_id, <значения>);

select что_нужно
into другие_мои_перемнные
from table
where id = new_id;
......
end;

я уверен на Pgpl/SQL можно написать эквивалентный код....

dlomin
()

второй вариант можно сделать, но как-то не красиво...

Serik
() автор топика
Ответ на: комментарий от no-dashi

а в триггере специально на тот случай написано

....
IF :NEW.id IS NULL THEN
SELECT seq_name.NEXTVAL
INTO :NEW.id
FROM dual;
END IF;
.....

Так что записи можно вставлять как с исползованием ретурнинг, так и без него....
И второй случай, про который говорят ответом выше, "как то некрасиво" очень часто испльзуется...


dlomin
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.