我正在尝试在mariadb中创建3个不同的表。我使用的是与本地主机完全相同的代码,并且可以正常工作。
表的名称是:位置,艺术家和壁画。
我首先创建位置表,然后创建艺术家表,最后尝试创建壁画表,因为这是我的外键所在的位置,但是我不断遇到以下错误:
错误1005(HY000):无法创建表KOMA
。murals
(错误号: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
);
我希望能够使用外键创建最后一个表
答案 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`)
);