【问题标题】:SQL phpMyAdmin- cannot find foreign key constrainSQL phpMyAdmin-找不到外键约束
【发布时间】: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


【解决方案1】:

您对以下语句有疑问

CONSTRAINT FOREIGN KEY (genre_id) REFERENCES Album (genre_id)
   ON DELETE CASCADE ON UPDATE CASCADE

genre_id 不是Album 表的列。

此外,外键将仅使用另一个表的主键创建...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-09
    • 2019-04-18
    • 1970-01-01
    • 2013-01-30
    • 2013-07-27
    • 2011-08-26
    • 2017-03-11
    • 2019-06-04
    相关资源
    最近更新 更多