Не удается добавить внешний ключ с помощью запроса на изменение таблицы - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь добавить внешний ключ в свою таблицу (oc_booking), но когда я делаю запрос на изменение таблицы, он возвращает «ОШИБКА 1215 (HY000): Невозможно добавить ограничение внешнего ключа», и я не знаю почему.

Я пытался использовать SQL (терминал) и HeidiSQL (инструмент, похожий на MySQL Workbench).

Это справочная таблица (oc_user):

+---------------+--------------+------+-----+---------+----------------+
| Field         | Type         | Null | Key | Default | Extra          |
+---------------+--------------+------+-----+---------+----------------+
| user_id       | int(11)      | NO   | PRI | NULL    | auto_increment |
| user_group_id | int(11)      | NO   |     | NULL    |                |
| username      | varchar(20)  | NO   |     | NULL    |                |
| password      | varchar(40)  | NO   |     | NULL    |                |
| salt          | varchar(9)   | NO   |     | NULL    |                |
| firstname     | varchar(32)  | NO   |     | NULL    |                |
| lastname      | varchar(32)  | NO   |     | NULL    |                |
| email         | varchar(96)  | NO   |     | NULL    |                |
| image         | varchar(255) | NO   |     | NULL    |                |
| code          | varchar(40)  | NO   |     | NULL    |                |
| ip            | varchar(40)  | NO   |     | NULL    |                |
| status        | tinyint(1)   | NO   |     | NULL    |                |
| date_added    | datetime     | NO   |     | NULL    |                |
+---------------+--------------+------+-----+---------+----------------+

В этой таблице я хочу добавить ограничение внешнего ключа (oc_booking):

+----------------+-----------+------+-----+-------------------+-----------------------------+
| Field          | Type      | Null | Key | Default           | Extra                       |
+----------------+-----------+------+-----+-------------------+-----------------------------+
| appointment_id | int(11)   | NO   | PRI | NULL              | auto_increment              |
| id_supplier    | int(11)   | NO   | MUL | NULL              |                             |
| id_user        | int(11)   | NO   |     | NULL              |                             |
| date           | timestamp | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+----------------+-----------+------+-----+-------------------+-----------------------------+

И это мой запрос:

ALTER TABLE oc_booking ADD FOREIGN KEY (id_user) REFERENCES oc_user(`user_id`);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...