當前位置:首頁 » 編程語言 » sql外鍵引用了無效的表
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql外鍵引用了無效的表

發布時間: 2022-08-12 01:46:47

A. 伺服器: 消息 1767,級別 16,狀態 1,行 1 外鍵 'FK__SC__Sno__47DBAE45' 引用了無效的表 'Student'。

--樓主 你搞錯順序了 既然有那麼多外鍵 那麼肯定要先創建主鍵表
--幫你改了
use JW_System
go
CREATE TABLE Sdept
(Dno CHAR(10) PRIMARY KEY,
Dname CHAR(20) UNIQUE,
Dtel BIGINT
);
CREATE TABLE Teacher
(Tno CHAR(10) PRIMARY KEY,
Tname CHAR(20),
Tsex CHAR(2),
Tjob CHAR(10),
Tsdept CHAR(10),
Ttel BIGINT,
Dno CHAR(10),
FOREIGN KEY (Dno) REFERENCES Sdept(Dno)
);
CREATE TABLE Class
(Cno CHAR(10) PRIMARY KEY,
Lcredit BIGINT,
Tno CHAR(10),
Dno CHAR(10),
FOREIGN KEY (Tno) REFERENCES Teacher(Tno), /*表級完整性約束條件,Tno是外碼*/
FOREIGN KEY (Dno) REFERENCES Sdept(Dno)); /*表級完整性約束條件,Dno是外碼*/
CREATE TABLE Student
(Sno CHAR(10) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20),
Sbirth CHAR(10),
Class CHAR(10) REFERENCES Class(Cno) /*表級完整性約束條件,Class是外碼*/
);
CREATE TABLE Course
(Cno CHAR(10) PRIMARY KEY,
Cname CHAR(20) UNIQUE,
Ccredit SMALLINT,
Ctime SMALLINT,
Tno CHAR(10),
Cpeople BIGINT,
FOREIGN KEY (Tno) REFERENCES Teacher(Tno) /*表級完整性約束條件,Tno是外碼*/
);

CREATE TABLE SC
(Sno CHAR(10),
Cno CHAR(10),
Grade SMALLINT CHECK(Grade>=0 AND Grade<=100),
PRIMARY KEY (Sno, Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno)
ON DELETE CASCADE /* 當刪除Student表中的元組時,級連刪除SC表中相應的元組*/
ON UPDATE CASCADE,/*當更新Student表中的Sno時,級連更新SC表中相應的元組*/
FOREIGN KEY (Cno) REFERENCES Course(Cno) /*表級完整性約束條件,Sno是外碼*/
on delete no ACTION
ON UPDATE CASCADE /*當更新Course表中的Cno時,級連更新SC表中相應的元組*/
);

--如果解決了樓主的問題 請採納

B. 「外鍵'FK__Staff__Dno__51BA1E3A' 引用了無效的表'Dept'。」求大神解決。

要先建dept表,後建staff表

C. 外鍵引用了無效的表是什麼意思啊

你這第一個表創建的時候 引用的外鍵 是Departments表裡邊的主鍵,但是Departments這個表現在還沒有創建,所以報錯,你得先調整一下幾個表的創建順序

D. sql Server 2005 外鍵引用了無效的表,跪求解決!!

外鍵引用的列必須是那個表的主鍵。

你不能用賣家地址和買家地址去建外鍵。

E. sql 外鍵

constraint pk_cj primary key(學號,課程號)
這個是給表,創建一個 主鍵約束。
也就是 學號,課程號 能夠確定一條唯一的紀錄。
不能有 一個學號, 一個課程號, 有2個成績的情況。

constraint fk_cj foreign key(課程號) references kc(課程號)
這個是給表,創建一個 外鍵約束。
意思是,我這個表的 課程號, 必須是在 kc 這個表裡面 有的。
我這個表不能憑空新建一個不存在的課程號。

外鍵 'fk_cj' 引用了無效的表 'kc'。

原因是, 你那裡可能 kc 表, 也就是 課程表, 還沒有創建好, 所以外鍵創建失敗。

SQL Server 外鍵約束的例子
http://hi..com/wangqing999/blog/item/969f70fa84e2873e5d600821.html

F. SQL2014中設置自身外鍵,總是顯示錯誤,說引用無效列,怎麼回事 急求

references 主表表名(主表欄位名)

按常理說應該有個course表吧,關聯里邊的cid欄位,也就是references course(cid)