多列外键组合,必须用表级别约束语法:
create table classes(
id int,
name varchar(20),
number int,
primary key(name, number)
);
create table student(
id int auto_increment primary key,
name varchar(20),
classes_name varchar(20),
classes_number int,
foreign key(classes_name, classes_number) references classes(name, number)
);
create table classes(
id int,
name varchar(20),
number int,
primary key(name, number)
);
create table student(
id int auto_increment primary key,
name varchar(20),
classes_name varchar(20),
classes_number int,
foreign key(classes_name, classes_number) references classes(name, number)
);
C表中f_name字段的值只能是B表或A表的guid_code字段的值。
C表中f_name字段的值只能是B表或A表的guid_code字段的值
楼主最好明确下来到底是和还是或和,则可以定义两次独立外键实现,
或,无法实现。