有条件地将一个表插入另一个表

时间:2019-03-01 08:03:10

标签: postgresql

同一名称可能会出现在 table1 的多行中。我想按1、2顺序列举所有名称。一种方法是

  1. 使用name作为主键,将id作为serial类型创建新表。
  2. name中选择table1,仅当它不存在时才插入table2
table1 (name vchar(50), ...)

table2 (name vchar(50) primary key, id serial)


insert into table2(name)
select name
from table1 limit 9
where not exists (select name from table2 where name = table1.name)

这不起作用。如何解决?

1 个答案:

答案 0 :(得分:0)

只需选择不同的值:

insert into table2(name)
select distinct name
from table1
order by name;