我想添加一个外键给我的flightschedule表,但它失败了,但我不知道为什么。外键应引用属于主键的tblAircraft表中的txtAC_tag属性! 因此,tblAircraft被索引(主键是由idAC和txtAC_tag组成的组合键 - >组合主键是否成问题?)和属性的数据类型匹配。MySQL错误1822:无法添加外键约束;缺少索引为contraint BUT索引存在
这里是我的表的定义键和外键声明:
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'
有什么建议?我很感激您能给我的任何帮助,谢谢!
...因此,他应该使用约束+1使'txtAC_tag'唯一。 –
@TimBiegeleisen:是的,你说的是确切的东西。 –
非常感谢你,这解决了我的问题! – user7335295