PostgreSQL从select插入,但忽略现有行

时间:2013-05-21 13:55:58

标签: sql postgresql

我想从select中将数据插入表中。到目前为止这个工作正常......

INSERT INTO table_2
    SELECT t.id, 1
        FROM table_1 t
        WHERE t.title LIKE '%search%';

但是当我第二次运行它时,该语句引发了一个异常,因为某些行已经存在。

我该怎么做才能解决这个问题?

感谢您的帮助, Urkman

1 个答案:

答案 0 :(得分:4)

您可以通过将行添加为子句来插入尚不存在的行。

insert into table_2
select t.id, 1
  from table_1 t
 where t.title like '%search%'
   and not exists (select t2.id from table_2 t2 where t2.id = t.id);