Самостоятельные отношения в MySQL

0

Я пытаюсь добавить отношение к себе в существующей таблице Innodb, вот структура таблицы

Table person

   person_id int (10) primary key not null auto increment,

   parent_id int (10) NULL default null,

   name varchar(30)

Когда я использую эту команду

ALTER TABLE `person` ADD FOREIGN KEY ( `parent_id` ) REFERENCES `person` (`person_id`) ON DELETE RESTRICT ON UPDATE RESTRICT ;

Я получаю несоответствие типа данных ошибки. Я думаю, это может быть связано с нулевыми значениями в parent_id. Есть ли способ пропустить эту проверку?

Спасибо

Теги:
innodb

1 ответ

2
Лучший ответ

person_id и parent_id должны быть точно такими же типами данных. Например, если person_id является INT UNSIGNED, а parent_id - INT, тогда вы не можете создать внешний ключ.

Запустите эту команду и сравните типы данных двух столбцов:

SHOW CREATE TABLE `person`\G
  • 0
    Там было без знака отличное в обоих :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню