mysql中怎么在一个表中创建多个外键,也就是说一个表中有两个字段是参照另外两个表的主键,这个怎么建啊!
create table teacher(
Tno int not null auto_increment,
Tname varchar(8) not null,
Tsex enum('男','女'),
Tage int not null,
Tdept varchar(10) not null,
primary key(Tno)
);
create table student(
Sno int not null auto_increment,
Sname varchar(8) not null,
Ssex enum('男','女'),
Sage int not null,
Sdept varchar(8) not null,
primary key(Sno)
);
create table courses(
Cno int auto_increment primary key,
Cname varchar(8) not null,
Credits double not null,
Tno varchar(6) not null
);
create table erollment(
Sno varchar(8) not null,
Cno varchar(3) not null,
Tno varchar(6) not null,
Grade double not null,
primary key(Sno,Cno,Tno)
); 展开
打开我的navicat,然后找到我的teacher表,选中它,然后点击菜单栏上的‘design table'
在弹出的对话框中找到“Foreign Keys”,然后单机。
然后会出现一个设置外键的界面,一共有七列。简单介绍一下这几列的意思。‘name’:可以不填,你一会保存成功系统会自动生成。FieldName’:就是你要把哪个键设置为外键。这里选择‘dept’,‘Reference DadaBase’:外键关联的数据库。‘Reference Table‘ :关联的表 这里是dept表‘Forgin filed Names’:关联的的字段,这里是code‘ondelete’:就是删除的时候选择的动作。这里我的选择是setNull,意思就是当关联的表删除以后,teacher》dept字段会设置为null.
设置完成后点击‘save’保存退出,也可以点击‘add Foreign Key’再添加一个外键。
打开我的navicat,然后找到我的teacher表,选中它,然后点击菜单栏上的‘design table’。如下图:
在弹出的对话框中找到“Foreign Keys”,然后单机。如下图:
然后会出现一个设置外键的界面,一共有七列。简单介绍一下这几列的意思。‘name’:可以不填,你一会保存成功系统会自动生成。FieldName’:就是你要把哪个键设置为外键。这里选择‘dept’,‘Reference DadaBase’:外键关联的数据库。‘Reference Table‘ :关联的表 这里是dept表‘Forgin filed Names’:关联的的字段,这里是code‘ondelete’:就是删除的时候选择的动作。这里我的选择是setNull,意思就是当关联的表删除以后,teacher》dept字段会设置为null。如图
设置完成后点击‘save’保存退出,也可以点击‘add Foreign Key’再添加一个外键。k如图:
Sno varchar(8) not null,
Cno varchar(3) not null,
Tno varchar(6) not null,
Grade double not null,
primary key(Sno,Cno,Tno),foreign key (sno) references student(sno),
foreign key (cno) references courses(cno),foreign key (tno) references teacher(tno)
);
可是我的表已经建过了,现在怎么添加外键啊?
ALTER TABLE erollment
add constraint fk_s foreign key (sno) references student(sno),
constraint fk_c foreign key (cno) references courses(cno),
constraint fk_t foreign key (tno) references teacher(tno)