如何将来自另一个 table 的数据插入到现有 table 中,并使用自动递增 ID?

How to insert data from another table into an existing table, with an autoincrementing id?

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

但是,我遇到了一个问题:我正在尝试做的是从其中一个大 table 中提取一列(暂时)并将其插入 table 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 的值;但是,根据我对递增值的理解,它应该会自行生成。

我做错了什么?


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

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

非常感谢!

试试这个

INSERT INTO town (town_name)
SELECT DISTINCT location
FROM old_table1

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