как добавить внешний ключ, указывающий на ту же таблицу, используя phpMyAdmin?

У меня есть существующая таблица InnoDB, в которой уже есть внешние ключи, указывающие на разные таблицы.

Но когда я пытаюсь создать внешний ключ, указывающий на первичный индекс, я получаю сообщение об ошибке (проверьте тип данных).

Таблица является пользователем с User_Id в качестве основного.

Мне нужен внешний ключ Manager_ID, который является FK для User_Id.

Оба из INT Оба из длины 10 без знака...

Но я все равно получаю ошибку проверки данных...?


person AFG    schedule 23.03.2009    source источник
comment
Вы говорите о предоставлении таблице внешнего ключа самой себе?   -  person chaos    schedule 23.03.2009
comment
Это то, что кажется. Но, возможно, мы ошибаемся, поскольку он также говорит о таблице InnoDB. Я думаю, нам может понадобиться дополнительная информация о схеме базы данных. Мой ответ может быть, а может и не быть тем, что он ищет.   -  person Kevin Crowell    schedule 23.03.2009
comment
Нет ничего плохого в наличии внешнего ключа для первичного ключа той же таблицы, например. usertable имеет связь FK между кредитным специалистом и кредитным инспектором.   -  person James Piggot    schedule 23.03.2009
comment
Эта длина 10 не имеет ничего общего с размером целого числа. Это распространенное заблуждение о MySQL. INT(10) означает, что он дополняется до 10 цифр только в том случае, если вы также определяете столбец как ZEROFILL.   -  person Bill Karwin    schedule 24.03.2009
comment
Можете ли вы опубликовать краткую структуру ваших таблиц?   -  person Cesar    schedule 24.03.2009


Ответы (1)


Убедитесь, что для параметра Manager_ID не установлено значение NOT NULL.

Вы должны разрешить пустые значения в этом поле, так как у самого высокопоставленного человека в компании не будет менеджера.

Я нашел сообщение на Советы MySQL, которые могут помочь.

person Powerlord    schedule 23.03.2009