r_fk foreign key(t_java) references teacher_tb2(t_id)
);
#建立多列组合外键约束
create table teacher_tb5
(
t_name varchar(255),
t_pass varchar(255),
primary key(t_name,t_pass)
);
create table student_tb5
(
s_id int auto_increment primary key,
s_name varchar(255) not null,
t_java_pass varchar(255),
t_java_name varchar(255),
foreign key(t_java_name,t_java_pass)
references teacher_tb5(t_name,t_pass)
);
#删除外键约束
alter table student_tb2
drop foreign key student_teacher_fk;
#增加外键约束
alter table student_tb2
add foreign key(t_java) references teacher_tb2(t_id);
#外键约束参照自身,自约束
create table foreign_test9
(
foreign_id int auto_increment primary key,
foreign_name varchar(255),
refer_id int,
foreign key(refer_id) references foreign_test9(foreign_id)
);
#定义当删除主表记录时,从表记录也随之删除
#on delete cascade 把参照该主表记录的从表记录全部级联删除
#on delete set null 把参照该主表记录的从表记录从表设为null e
create table teacher_tb8
(
t_id int auto_increment,
t_name varchar(255),
primary key(t_id)
);
create table student_tb8
(
s_id int auto_increment primary key,
s_name varchar(255) not null,
t_java int,
constraint student_teacher_fk foreign key(t_java) references teacher_tb8(t_id) on delete cascade
);
|