我正在编写一个需要能够从另一个数据库导入信息的数据库。我的数据库有一个成员表和另一个表可以授予成员的权限(成员可以被授予多种类型的权限)。 members表包含一个列,用于存储来自其他DB的成员的主键,以便顺利导入。
我的问题是,当我从其他数据库导入其他数据库密钥和权限,然后将“其他密钥”转换为我的密钥,我可能会复制权限表中的条目,mySQL正确不允许。我希望它能继续改变它可以改变的那些,我知道那些没有改变的我可以删除。
有人可以帮助我,还是有一个完全不同的解决方案?
答案 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)