Самостоятельные отношения в MySQL - PullRequest
0 голосов
/ 27 сентября 2010

Я пытаюсь добавить самоотношение в существующую таблицу 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. Есть ли способ пропустить эту проверку?

Спасибо

1 Ответ

2 голосов
/ 27 сентября 2010

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

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

SHOW CREATE TABLE `person`\G
...