插入选择从重复键忽略postgres

时间:2017-02-02 05:31:48

标签: postgresql on-duplicate-key insert-select

我从这个来源读到你可以在postgres中对dupcliate键进行插入忽略,但我似乎无法让这个用于选择:

link

我看到你能做的是:

insert into tab(id, val) values(1, 'nosert'), (2,
'nosert'), (3, 'nosert') on duplicate key ignore returning id;

为什么我不能这样做?

insert into table_one (field_one, field_two) select field_one, field_two from table_two on duplicate key ignore returning field_one;

我被告知我的语法错误几乎没有重复,但之前的查询运行正常(虽然它与一个重复的索引相符)并且查询的其余部分只是添加了on duplicate key ignore returning field_one

select from无法实现这一点吗?

1 个答案:

答案 0 :(得分:5)

能够以on conflict do nothing解决9.5

insert into table_one (field_one, field_two) 
select field_one, field_two from table_two 
on conflict do nothing;