【发布时间】:2017-09-16 14:17:21
【问题描述】:
我正在尝试向我的航班计划表中添加一个外键,但它失败了,但我真的不知道为什么。外键应该引用 tblAircraft 表中的 txtAC_tag 属性,它是主键的一部分! 所以 tblAircraft 被索引(主键是由 idAC 和 txtAC_tag 组成的组合键 -> 组合主键可能是问题吗?)并且属性的数据类型确实匹配。
这是我的表声明和外键声明:
create table if not exists tblAircrafts(
idAC int not null auto_increment,
txtAC_tag varchar(255) not null,
txtAC_type varchar(255) not null,
primary key(idAC, txtAC_tag));
create table if not exists tblFlightSchedule(
ID int not null auto_increment,
datDate date,
txtFrom varchar(255),
txtTo varchar(255),
txtFlight varchar(255),
numFlight_time_decimal decimal(4,2),
txtAC_tag varchar(255) not null,
txtAC_type varchar(255) not null,
numSeatCapacity int unsigned,
numLoad int unsigned, -- auslastung
numDirt decimal(20,19),
numTotalFlightTime decimal(50,5),
numCumDirt decimal(20,15),
primary key(ID));
alter table tblflightschedule
add foreign key(txtAC_tag) references tblaircrafts(txtAC_tag);
这是错误消息:
Error Code: 1822. Failed to add the foreign key constaint. Missing index for constraint '' in the referenced table 'tblaircrafts'
有什么建议吗?感谢您给我的任何帮助,谢谢!
【问题讨论】:
标签: mysql database error-handling foreign-keys