每当我插入表xxx:
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)
为什么呢?我该如何解决这个问题?
答案 0 :(得分:0)
如果MySQL从CREATE TABLE语句报告错误号1005,并且错误消息引用错误150,则表创建失败,因为未正确形成外键约束。 同样,如果ALTER TABLE失败并且引用错误150,则意味着更改的表将错误地形成外键定义。
您需要提供有关您尝试制作的外键约束的更多信息。
答案 1 :(得分:0)
如果没有细节,很难猜到出了什么问题,但是你可能会犯一些常见的错误:
1. yyy.yyy_id不是唯一/主键
2. yyy.yyy_id和xxx.my_yyy_id有不同的类型(例如yyy_id unsigned int
,xxx.my_yyy_id int
)
答案 2 :(得分:0)
您使用的是哪个版本的MySQL?可能比4.1还要大吗?
可以尝试在不添加外键的情况下创建索引吗?如果可行,请尝试添加外键。