【发布时间】:2018-02-15 04:59:12
【问题描述】:
在 phpMyAdmin 上创建表 Artist 和表 Album 后,当我尝试创建表 Track 时,我不断收到错误 - #1215 - 无法添加外键约束。可以是NULL吗?
CREATE TABLE Artist (
artist_id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(255),
PRIMARY KEY(artist_id)
)
CREATE TABLE Album (
album_id INTEGER NOT NULL AUTO_INCREMENT,
title VARCHAR(255),
artist_id INTEGER,
PRIMARY KEY(album_id),
INDEX USING BTREE (title),
CONSTRAINT FOREIGN KEY (artist_id)
REFERENCES Artist (artist_id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB;
CREATE TABLE Track ( <--ERROR STARTS AFTER I TRY TO CREATE TRACK.
track_id INTEGER NOT NULL AUTO_INCREMENT,
title VARCHAR(255),
len INTEGER,
rating INTEGER,
count INTEGER,
album_id INTEGER,
genre_id INTEGER,
PRIMARY KEY(track_id),
INDEX USING BTREE (title),
CONSTRAINT FOREIGN KEY (album_id) REFERENCES Album (album_id)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT FOREIGN KEY (genre_id) REFERENCES Album (genre_id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB;
【问题讨论】:
-
CONSTRAINT FOREIGN KEY (genre_id) REFERENCES Album (genre_id) ON DELETE CASCADE ON UPDATE CASCADE------------ 错误在此..“genre_id”不是列“专辑”表。
-
还有一点,你可以只用另一个表的主键来创建引用你的键
-
米塔尔哇谢谢 :)
标签: sql phpmyadmin