我有两个大型表,有很多重复的值,我刚刚创建了一个新的数据库模式。现在,我必须提取所有数据以将它们插入新表中。
然而,我遇到了一个问题:我想要做的是从一个大表中提取一列(暂时),并将其插入表中 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。我该如何提取数据?
非常感谢!
答案 0 :(得分:1)
试试这个
INSERT INTO town (town_name)
SELECT DISTINCT location
FROM old_table1
如果您没有为所有列提供值,则应明确指定要插入的列