Обсуждение: Re: [pgsql-ru-general] select + insert

Поиск
Список
Период
Сортировка

Re: [pgsql-ru-general] select + insert

От
Nikolay Samokhvalov
Дата:
create table a(id int8 primary key); with ids(id) as ( values(1) ), ins as ( insert into a(id) select id from ids on conflict (id) do nothing returning * ) select * from a where id in (select id from ids) union all select * from ins ; 2017-12-01 4:44 GMT-08:00 Владимир : > Добрый день! > Хотелось узнать вот такой вопрос. > Создал функцию на plsql - create(xx) > Которая вот что делает: > Если xx есть в таблице tbl тогда возвращает 0 иначе создает строку xx в > таблице tbl и возвращает x > > Так вот, а есть ли возможность тоже самое сделать, но на sql языке > хотел что-то на подобии: > > SELECT 0 from tbl WHERE x=xx > UNION ALL > INSERT INTO tbl values (xx) WHERE xx NOT IN (SELECT x from tbl) RETURNING x > > Но не проходит. > Может подскажете, очень интересно знать, возможно ли подобное. > > >