繁体   English   中英

表“用户”中的列与现有主键或唯一约束不匹配

[英]The column in table 'Users' do not match an existing primary key or unique constraint

我有两个表,'Users' 和'IssueBooks'。 在这两个表中,我都将 ADMIN_ID、USN 和 E_ID 作为列。

当我尝试将用户表连接到使这些列成为外键的 IssueBooks 表时,会弹出此错误:-

The column in table 'Users' do not match an existing primary key or unique constraint

所有三列都是主键,我希望它们是 IssueBooks 表中的外键。

所有这些列在两个表中的拼写相同。

这意味着 Users 具有父表IssueBooks不存在的组合。 找出值并相应地更新它。

  1. 找出父级中缺少的组合
SELECT ADMIN_ID, USN, E_ID
FROM Users AS uo
WHERE NOT EXISTS (SELECT 1 FROM IssueBooks 
                  WHERE ADMIN_ID = uo.ADMIN_ID 
                    AND USN = uo.USN 
                    AND E_ID = uo.E_ID)
  1. 现在,您需要更新或删除Users的组合:
UPDATE Users
SET ADMIN_ID = <newvalue>,
    USN = <newvalue>,
    E_ID = <newvalue>
WHERE ADMIN_ID = <oldvalue> 
  AND USN = <oldvalue> 
  AND E_ID = <oldvalue>

或者

DELETE Users
WHERE ADMIN_ID = <oldvalue> AND USN = <oldvalue> AND E_ID = <oldvalue>
  1. 现在在Users表中相应地创建外键:
ALTER TABLE Users 
    ADD CONSTRAINT FK_Users_issueBooks 
        FOREIGN KEY (ADMIN_ID, USN, E_ID) 
        REFERENCES IssueBooks(ADMIN_ID, USN, E_ID)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM