合并和更新主键

时间:2010-12-24 15:10:13

标签: mysql merge

我看了,但没有找到解决看似简单问题的方法。

我有很多具有相同结构的表,并希望将它们合并。唯一的问题是它们都有一个id字段作为主键。主键中会有很多重复项。 id到底是什么并不重要。如何合并所有表格以便我不会丢失任何数据?

2 个答案:

答案 0 :(得分:5)

在新表中创建一个AUTO_INCREMENT字段,并从值列表中省略它:

CREATE TABLE NEW_TABLE (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, col1 …, col2 …, …);

INSERT
INTO    new_table (col1, col2, …)
SELECT  col1, col2
FROM    old_table_1
UNION ALL
SELECT  col1, col2
FROM    old_table_2
UNION ALL
…

答案 1 :(得分:1)

在目标表中,使用自动递增字段作为主键。然后将除主键之外的其他表中的所有列复制到新表中。

INSERT new_table (col1, col2 , col3)
SELECT col1, col2, col3
FROM old_table