ALTER TABLE语句与FOREIGN KEY约束冲突

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (83)

试图向我的tblDomare表添加外键时遇到问题; 我在这里做错了什么?

CREATE TABLE tblDomare
(PersNR VARCHAR (15) NOT NULL,
fNamn VARCHAR (15) NOT NULL,
eNamn VARCHAR (20) NOT NULL,
Erfarenhet VARCHAR (5),
PRIMARY KEY (PersNR));

INSERT INTO tblDomare (PersNR,fNamn,eNamn,Erfarenhet)
Values (6811034679,'Bengt','Carlberg',10);

INSERT INTO tblDomare (PersNR,fNamn,eNamn,Erfarenhet)
Values (7606091347,'Josefin','Backman',4);

INSERT INTO tblDomare (PersNR,fNamn,eNamn,Erfarenhet)
Values (8508284163,'Johanna','Backman',1);

CREATE TABLE tblBana
(BanNR VARCHAR (15) NOT NULL,
PRIMARY KEY (BanNR));

INSERT INTO tblBana (BanNR)
Values (1);

INSERT INTO tblBana (BanNR)
Values (2);

INSERT INTO tblBana (BanNR)
Values (3);

ALTER TABLE tblDomare
ADD FOREIGN KEY (PersNR)
REFERENCES tblBana(BanNR);

错误信息:

ALTER TABLE语句与FOREIGN KEY约束“FK_ tblDomare _PersN__5F7E2DAC” 冲突。冲突发生在数据库“almu0004”,表“dbo.tblBana”,列'BanNR'中。

提问于
用户回答回答于

这个查询对我来说非常有用。它显示所有没有任何匹配的值

select FK_column from FK_table
WHERE FK_column NOT IN
(SELECT PK_column from PK_table)
用户回答回答于

它发生的原因是你试图创建一个外键tblDomare.PersNRtblBana.BanNR但/并且其中的值tblDomare.PersNR与任何值都不匹配tblBana.BanNR。您无法创建违反参照完整性的关系。

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问5 回答
  • uncle_light

    5 粉丝518 提问3 回答
  • 学生

    2 粉丝477 提问3 回答
  • 军哥

    重庆雷驰信息技术有限公司 · 经理 (已认证)

    5 粉丝1 提问3 回答

扫码关注云+社区

领取腾讯云代金券