MARIADB:错误号:150“外键约束格式不正确

时间:2019-04-25 20:36:39

标签: mysql mariadb

我正在尝试在mariadb中创建3个不同的表。我使用的是与本地主机完全相同的代码,并且可以正常工作。

表的名称是:位置,艺术家和壁画。

我首先创建位置表,然后创建艺术家表,最后尝试创建壁画表,因为这是我的外键所在的位置,但是我不断遇到以下错误:

错误1005(HY000):无法创建表KOMAmurals(错误号:150“外键约束格式不正确”)

创建位置表


Create TABLE location(
l_id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
country varchar(255),
city varchar(255) NOT NULL, 
address varchar(255),
a_number int(10),
zipcode int(5)
);

创建艺术家表

Create TABLE artist(
a_id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(255) NOT NULL );

创建壁画表

CREATE table murals (
m_id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
title varchar(255) NOT NULL, 
imageurl varchar(255) NOT NULL,
about varchar(255) NOT NULL,
year INT(4),
a_id INT(11),
l_id INT(11),
FOREIGN KEY (a_id) REFERENCES artist,
FOREIGN KEY (l_id) REFERENCES location
);

我希望能够使用外键创建最后一个表

1 个答案:

答案 0 :(得分:1)

定义外键时,您需要指向“父”表所引用的列; MySQL不假定该列具有相同的名称。

CREATE TABLE `murals` (
    `m_id` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    `title` VARCHAR(255) NOT NULL, 
    `imageurl` VARCHAR(255) NOT NULL,
    `about` VARCHAR(255) NOT NULL,
    `year` INT(4),
    `a_id` INT(11),
    `l_id` INT(11),
    FOREIGN KEY (`a_id`) REFERENCES `artist`(`a_id`),
    FOREIGN KEY (`l_id`) REFERENCES `location`(`l_id`)
);