FOREIGN KEY(f_name) REFERENCES A(guid_code),B(guid_code)
请高人指点。
6 个解决方案
#1
Moved to the Mysql
#2
分开写先参照A,再另写一句参照B
#3
立刻试验一下。
#4
多列外键组合,必须用表级别约束语法:
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)
);
#5
我的意思是C表中的f_name字段约束为B表和A表的guid_code字段,该如何写这个语句,简单表述如下:
C表中f_name字段的值只能是B表或A表的guid_code字段的值。
C表中f_name字段的值只能是B表或A表的guid_code字段的值。
#6
C表中的f_name字段约束为B表和A表的guid_code字段
C表中f_name字段的值只能是B表或A表的guid_code字段的值
楼主最好明确下来到底是 和还是 或
和,则可以定义两次独立外键实现,
或,无法实现。
C表中f_name字段的值只能是B表或A表的guid_code字段的值
楼主最好明确下来到底是 和还是 或
和,则可以定义两次独立外键实现,
或,无法实现。
#1
Moved to the Mysql
#2
分开写先参照A,再另写一句参照B
#3
立刻试验一下。
#4
多列外键组合,必须用表级别约束语法:
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)
);
#5
我的意思是C表中的f_name字段约束为B表和A表的guid_code字段,该如何写这个语句,简单表述如下:
C表中f_name字段的值只能是B表或A表的guid_code字段的值。
C表中f_name字段的值只能是B表或A表的guid_code字段的值。
#6
C表中的f_name字段约束为B表和A表的guid_code字段
C表中f_name字段的值只能是B表或A表的guid_code字段的值
楼主最好明确下来到底是 和还是 或
和,则可以定义两次独立外键实现,
或,无法实现。
C表中f_name字段的值只能是B表或A表的guid_code字段的值
楼主最好明确下来到底是 和还是 或
和,则可以定义两次独立外键实现,
或,无法实现。