SQL错误,急

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:20:13
有两个creat table
CREATE TABLE Staff (

Eno numeric(3) NOT NULL,
Ename char(9) NOT NULL,
Sex char(2) NOT NULL,
Age numeric(3) NOT NULL,
Title char(9) NOT NULL,
Dno numeric(2) NOT NULL,

CONSTRAINT PK_Staff PRIMARY KEY CLUSTERED (Eno,Dno),
CONSTRAINT RightSex CHECK (Sex='男' OR Sex='女')

)

CREATE TABLE Department (

Dno numeric(2) NOT NULL,
Name char(9) NOT NULL,
Manager numeric(3) NOT NULL,
Phone numeric(9) NOT NULL,
CONSTRAINT PK_Department PRIMARY KEY CLUSTERED (Dno),
CONSTRAINT FK_Department FOREIGN KEY (Dno) REFERENCES Staff (Dno)

)

第二个为什么不对,语法检查通过,但执行不了

错误提示:
服务器: 消息 1776,级别 16,状态 1,行 1
在被引用表 'Staff' 中没有与外键 'FK_Department' 的引用列的列表匹配的主键或候选键。
服务器: 消息 1750,级别 16,状态 1,行 1
未能创建约束。请参阅前面的错误信息。

CONSTRAINT FK_Department FOREIGN KEY (Dno) REFERENCES Staff (Dno) 有问题
因为staff表中的主键是一对属性(Eno,Dno),在进行外键设置的时候,作为主表的staff必须同时有这两个属性出现才行,即最后的定义必须是Staff(Eno,Dno).而你的第二个表中只有一个属性作为主键,就无法和staff表建立外键联接.

两个主键之间没有相关联!