我可以导入现有的表自动更改主键吗?

时间:2017-03-28 07:01:56

标签: mysql sql import overwrite

我有一个关于我的服务器的权限的表来自我的网站的早期版本,我需要保留它们,但是最新的Web应用程序版本有自己的,可能需要此表中的基本配置。

因此,我需要将vanilla数据导入到我的表中(或者反之,相同的结果),而不会覆盖或跳过现有的主键,这意味着,自动将主键更新为其他未使用的键。这可能吗?怎么样?

2 个答案:

答案 0 :(得分:0)

是的,这是可能的。使用像

这样的INSERT INTO .. SELECT FROM结构
insert into new_table(col1, col2, ...,coln)
select col1, col2, ...,coln from old_table;

没有,只是不要在insert语句中包含您的PK列,因此如果在导入的表中PK是合成或自动递增的列,那么它将自动生成。

答案 1 :(得分:0)

以下是我建议的陈述结构的一个例子 -

INSERT INTO tblNewPermissions ( permissionsID,
                                oldPermission1,
                                oldPermission2,
                                newPermission1,
                                newPermission2 )
SELECT permissionsID,
       permission1,
       permission2,
       "newPermission1DefaultValue",
       "newPermission2DefaultValue"
FROM tblOldPermissions;

注意:您需要确保新表中用于存储旧数据的字段具有匹配的数据类型。

注意:此方法假定主键不是自动增量字段。

如果对此答案有任何问题或意见,请随时发表评论。