mySQL导入/重复键

时间:2011-08-11 14:46:23

标签: mysql import primary-key

我正在编写一个需要能够从另一个数据库导入信息的数据库。我的数据库有一个成员表和另一个表可以授予成员的权限(成员可以被授予多种类型的权限)。 members表包含一个列,用于存储来自其他DB的成员的主键,以便顺利导入。

我的问题是,当我从其他数据库导入其他数据库密钥和权限,然后将“其他密钥”转换为我的密钥,我可能会复制权限表中的条目,mySQL正确不允许。我希望它能继续改变它可以改变的那些,我知道那些没有改变的我可以删除。

有人可以帮助我,还是有一个完全不同的解决方案?

1 个答案:

答案 0 :(得分:0)

只需在查询中添加IGNORE即可丢失not in。然后将重复的错误视为警告,您的导入将仅使用唯一数据继续。您无需手动复原并删除重复项。

INSERT IGNORE INTO GRANTED (MEM_ID,PERM_CODE) 
SELECT MEMBERS.MEM_ID AS MEM_ID,PERM_CODE 
FROM MEMBERS 
JOIN TEMP
ON (MEMBERS.MEM_SK_ID=TEMP.MEM_ID)