create table Bands(
band_ID int NOT NULL AUTO_INCREMENT,
band_name varchar(20) NOT NULL,
band_year int NOT NULL,
PRIMARY KEY (band_ID)
);
create table Albums(
album_ID int NOT NULL AUTO_INCREMENT,
album_name varchar(20) NOT NULL,
band_name varchar(20) NOT NULL,
PRIMARY KEY (album_ID),
FOREIGN KEY (band_name) REFERENCES Bands(band_name)
);
有人可以帮我处理我的MySQL语句吗?我以为首先是类型冲突,但事实并非如此。我不确定是什么原因导致错误
答案 0 :(得分:3)
您需要约束所引用的列要么是被引用表的主键(最佳实践),要么至少具有索引。
MySQL要求在外键和引用键上建立索引,以便外键检查可以快速进行,而无需进行表扫描。
最底线:为什么不在专辑表中存储(并参考)乐队ID而不是乐队名称?似乎这样会更好地响应您的用例。