如何将另一个表中的数据插入到具有自动增量ID的现有表中?

时间:2016-11-08 19:37:08

标签: mysql database postgresql database-schema

我有两个大型表,有很多重复的值,我刚刚创建了一个新的数据库模式。现在,我必须提取所有数据以将它们插入新表中。

然而,我遇到了一个问题:我想要做的是从一个大表中提取一列(暂时),并将其插入表中 Town(id_town,town_name),id_town是自动增量主键,如下:

ALTER TABLE Town
ADD COLUMN id_town SERIAL PRIMARY KEY;

我这样做了,所以我可以提取所有城镇,并为每个城镇提供他们的特定ID。 (如果你有更好的解决方案,我会顺便接受!)

所以,我试图提取数据,但它不起作用:

INSERT INTO town
SELECT DISTINCT location
FROM old_table1

显示的错误告诉我它正在等待id_town的值;但是,根据我对递增值的理解,它应该自行生成。

我做错了什么?

我遇到的另一个问题:我想我有一个正确的语法从旧表中提取一个列以将其放入新表中,但我真的不知道我是怎么做的#39 ;我应该从两个旧表中的一个中提取特定列,并将它们只放在新表的某些列中:

我有一个表,例如,有6列(包括自动增量id),其中3个来自old_table1,其中2个来自old_table2。我该如何提取数据?

非常感谢!

1 个答案:

答案 0 :(得分:1)

试试这个

INSERT INTO town (town_name)
SELECT DISTINCT location
FROM old_table1

如果您没有为所有列提供值,则应明确指定要插入的列