mysql error 150 Внешние ключи - PullRequest
       9

mysql error 150 Внешние ключи

0 голосов
/ 26 февраля 2011

всякий раз, когда я вставляю в таблицу ххх:

alter table xxx 
add index FK68C3166C7B556202 (my_yyy_id), 
add constraint FK68C3166C7B556202 foreign key (my_yyy_id) references yyy (yyy_id)

... я получаю:

19:27:44,355 ERROR SchemaUpdate:212 - Unsuccessful: alter table xxx add index FK68C3166C7B556202 (my_yyy_id), add constraint FK68C3166C7B556202 foreign key (my_yyy_id) references yyy (yyy_id)
19:27:44,356 ERROR SchemaUpdate:213 - Can't create table 'mydb.#sql-2f1b_657' (errno: 150)

почему? как мне решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 26 февраля 2011

Трудно догадаться, что не так, без подробностей, но вы можете сделать несколько общих ошибок: 1. yyy.yyy_id не является уникальным / первичным ключом
2. yyy.yyy_id и xxx.my_yyy_id имеют разные типы(например, yyy_id unsigned int, xxx.my_yyy_id int)

0 голосов
/ 26 февраля 2011

Какую версию MySQL вы используете?Может ли он быть старше 4.1 или около того?

Можно попробовать создать индекс без добавления внешнего ключа?Если это работает, попробуйте добавить внешний ключ.

0 голосов
/ 26 февраля 2011

Документация

Если MySQL сообщает об ошибке 1005 из оператора CREATE TABLE, и сообщение об ошибке ссылается на ошибку 150, создание таблицы завершилось неудачно, поскольку ограничение внешнего ключа было сформировано неправильно. Аналогично, если происходит сбой команды ALTER TABLE и она ссылается на ошибку 150, это означает, что определение внешнего ключа будет неправильно сформировано для измененной таблицы.

Вам необходимо предоставить больше информации об ограничении внешнего ключа, которое вы пытаетесь установить.

...