我有以下sql脚本:
use restaurant;
set foreign_key_checks=0;
create table rtable_schedule(
id int(11) not null,
rdate date not null,
start_hour tinyint,
start_min tinyint,
end_hour tinyint,
end_min tinyint,
foreign key (id,rdate) references rtable(id,reservation_date),
primary key (id,rdate)
);
然而,当我通过phpmyadmin导入它时,我收到以下错误:
#1215 - Cannot add foreign key constraint
任何想法如何解决?注意rtable已经存在
答案 0 :(得分:1)
Here's Foriegn Keys的MySQL文档,这就是它所说的:
InnoDB允许外键引用任何列或组 列。但是,在引用的表中,必须有一个索引 其中引用的列被列为的第一列 同样的顺序。
NDB在任何列上都需要显式唯一键(或主键) 引用为外键。
由于reservation_date
列不是主键的一部分,因此它很可能在rtable
中没有索引。我建议在创建包含reservation_date
的表格之前在Foreign Key
列上创建索引。