MARIADB: errno: 150 "Неправильно сформировано ограничение внешнего ключа - PullRequest
1 голос
/ 25 апреля 2019

Я пытаюсь создать 3 разных таблицы в mariadb. Я использую точно такой же код, который я использовал на своем локальном хосте, и это сработало.

Название таблицы: местоположение, художник и фрески.

Сначала я создаю таблицу местоположений, затем я создаю таблицу исполнителей и, наконец, пытаюсь создать таблицу фресок, потому что именно там находятся мои внешние ключи, но я получаю следующую ошибку:

ОШИБКА 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
);

Я бы хотел создать последнюю таблицу с моими внешними ключами

1 Ответ

1 голос
/ 25 апреля 2019

При определении внешнего ключа необходимо указать на «родительскую» таблицу и указанный столбец;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`)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...