首页 > 解决方案 > 有条件地从一个表插入到另一个表中

问题描述

同名可能出现在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)

这行不通。如何解决?

标签: postgresql

解决方案


只需选择不同的值:

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

推荐阅读