【數據庫】ALTER TABLE 語句與 FOREIGN KEY 約束""衝突。該衝突發生於數據庫"",表"", column ''。

本篇講述的是在已經創建好表且有數據的情況下,增加 FOREIGN KEY 約束的報錯問題

一、問題

當我在一張Student表中增加它的classNo外鍵,外鍵參照Class表。

ALTER TABLE Student ADD FOREIGN KEY(classNo) REFERENCES Class

語法沒錯,但是運行出現報錯。如圖:
在這裏插入圖片描述

消息 547,級別 16,狀態 0,第 18 行
ALTER TABLE 語句與 FOREIGN KEY 約束"FK__Student__classNo__20C1E124"衝突。該衝突發生於數據庫"ScoreDB",表"dbo.Class", column ‘classNo’。

二、分析原因

正常情況下,我們創建好數據表,然後用該語法定義增加主鍵、外鍵都是沒問題的。
但是經本人研究發現,當數據表中有數據時,增加外鍵會出現該問題。
因爲該Student表中是有數據的,所以增加不了外鍵。

三、解決辦法

方法一

sql語句方式:
把相關數據表的數據刪除掉,再執行該語句。
如果刪除表數據還是有問題,建議重建數據庫,先建立好關係,再導入數據試試。

方法二

可視化嚮導方式:
把“在創建或重新啓動時檢查現有數據”改爲否。

  1. 找到Student表,右擊鍵,點擊“新建外鍵”
    在這裏插入圖片描述
  2. 左上角自動有一個外鍵,然後點擊圖中位置的省略號圖標
    在這裏插入圖片描述
  3. 根據實際情況給它添加外鍵關係,圖中框線3個部分是可以選取的,定義完關係後點擊確定
    在這裏插入圖片描述
  4. 把“在創建或重新啓動時檢查現有數據”改爲否!!!
    注意:
    如果數據表中都沒有數據,可以默認爲是。但是數據表中都有數據才創建外鍵,就要把這裏改爲否,才能創建成功。
    在這裏插入圖片描述
  5. 最後關閉這個頁面,會出現是否保存數據,依次點是就行了。
    在這裏插入圖片描述
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章