[英]Foreign Key Constraint SQL
不斷收到錯誤無法添加外鍵約束,任何想法都可能是菜鳥錯誤,但我是SQL新手。
CREATE TABLE tblDept (
Dept VARCHAR(50),
Name VARCHAR(50)
);
CREATE TABLE tblPersonnel (
PersID INT PRIMARY KEY,
FullName VARCHAR(100),
Address VARCHAR(100),
Dept VARCHAR(50),
Grade VARCHAR (2),
Salary INT,
DateOfBirth DATE,
Manager INT,
FOREIGN KEY(Dept) REFERENCES tblDept(Dept)
);
CREATE TABLE PersonnelPhone (
PersID INT,
Extension INT,
FOREIGN KEY (PersID) REFERENCES tblPersonnel(PersID)
);
CREATE TABLE tblPhone (
Extension INT,
DeviceType VARCHAR,
VoiceMail BOOLEAN,
FOREIGN KEY (Extension) REFERENCES tblPersonnelPhone(Extension)
);
第二個表中的Extension
必須為PRIMARY KEY
。
您可能想要實現多對多關系。 在這種情況下, PersonnelPhone
Extension
應該是FOREIGN KEY
,而tblPhone
Extension
應該是PRIMARY KEY
。
那里有幾個錯誤。 這是一個工作模式定義:
CREATE TABLE tblDept (
Dept VARCHAR(50) PRIMARY KEY,
Name VARCHAR(50)
);
CREATE TABLE tblPersonnel (
PersID INT PRIMARY KEY,
FullName VARCHAR(100),
Address VARCHAR(100),
Dept VARCHAR(50),
Grade VARCHAR(2),
Salary INT,
DateOfBirth DATE,
Manager INT,
FOREIGN KEY(Dept) REFERENCES tblDept(Dept)
);
CREATE TABLE tblPersonnelPhone (
PersID INT,
Extension INT PRIMARY KEY,
FOREIGN KEY (PersID) REFERENCES tblPersonnel(PersID)
);
CREATE TABLE tblPhone (
Extension INT,
DeviceType VARCHAR(100),
VoiceMail BOOLEAN,
FOREIGN KEY (Extension) REFERENCES tblPersonnelPhone(Extension)
);
供將來參考,請使用SQLFiddle共享這些類型的問題: http ://sqlfiddle.com/#!9/2ce29
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.