[英]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.