Самоотношение в MySQL

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

Спасибо


person Maximus    schedule 27.09.2010    source источник


Ответы (1)


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

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

SHOW CREATE TABLE `person`\G
person Ike Walker    schedule 27.09.2010
comment
В обоих было неподписанное разное :) - person Maximus; 27.09.2010