我试图在mariadb中创建3个不同的表。我正在使用与本地主机完全相同的代码,并且它有效。
表格名称为:位置,艺术家和壁画。
我首先创建位置表,然后创建艺术家表,最后我尝试创建壁画表,因为这是我的外键所在的位置,但我不断收到以下错误:
错误 1005 (HY000): 无法创建表KOMA
。murals
(errno: 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
);
我希望能够使用我的外键创建最后一个表
定义外键时,需要指向"父"表和引用的列;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`)
);