我有两个海量表,具有很多重复的值,并且我刚刚创建了一个新的数据库模式。现在,我必须提取所有数据以将它们插入新表中。
但是,我遇到了一个问题:我想做的是(从当前位置)从一个大表中提取一列,并将其插入到具有ID_town的表Town(id_town,town_name)中是自动递增的主键,例如:
ALTER TABLE Town
ADD COLUMN id_town SERIAL PRIMARY KEY;
我这样做是为了提取所有城镇,并为每个城镇添加特定的ID。(如果您有更好的解决方案,我会顺带考虑!)
因此,我正在尝试提取数据,但是它不起作用:
INSERT INTO town
SELECT DISTINCT location
FROM old_table1
显示的错误告诉我它正在等待id_town的值;但是,据我对值递增的理解,它应该生成自己。
我究竟做错了什么?
我遇到的另一个问题:我想我有正确的语法从旧表中提取一列以放入新表中,但是我真的不知道我应该如何从一个表中提取特定列的两个旧表,并将它们仅放在新表的某些列中:
例如,我有一个表,该表有6列(包括自动递增的ID),其中3列来自old_table1,其中2列来自old_table2。我应该如何提取数据?
非常感谢 !
试试这个
INSERT INTO town (town_name)
SELECT DISTINCT location
FROM old_table1
如果不为所有列提供值,则应显式指定要插入的列
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句