嘗試將外鍵添加到我的tblDomare
表時遇到問題;我在這裏做錯了什麼?ALTER TABLE語句與FOREIGN KEY約束衝突
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語句衝突與外鍵約束 「FK_ tblDomare _PersN__5F7E2DAC」。衝突發生在數據庫「almu0004」,表「dbo.tblBana」,列'BanNR'中。
這是我的答案,但我仍然在努力認識到問題出在哪裏,所以我會給一個外行人的例子。如果您有一個名爲'Orders'的表和一個名爲'Customers'的表,並且您刪除了一些老客戶,但不是他們的訂單,如果您決定從Orders.CustomerId向客戶創建外鍵,則會出現此錯誤。ID。有些訂單不再有相應的客戶,所以不可能添加外鍵。 –
@Smutje,感謝=))) – isxaker
這裏有一個查詢,以檢查不正確的值: 從referrerTable 選擇不同referrerTable.referenceColumn 左加入referredTable 上referredTable.referenceColumn = referrerTable.referenceColumn 其中referredTable.referenceColumn爲null; – jumxozizi