更改表无法添加外键约束

时间:2014-04-30 11:12:10

标签: mysql symfony doctrine-orm

解决

我已经阅读了很多关于这个问题的话题但仍然没有运气,不知道为什么这不起作用?这个DDL是由Symfony / Doctrine生成的。

SET FOREIGN_KEY_CHECKS = 0;
CREATE TABLE parent_table (first_id INT NOT NULL, second_id INT NOT NULL, PRIMARY KEY(first_id, second_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE child_table (first_id INT NOT NULL, second_id INT NOT NULL, third_id VARCHAR(255) NOT NULL, INDEX IDX_125B5ABCD871DC26E524616D (second_id, first_id), PRIMARY KEY(first_id, second_id, third_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
ALTER TABLE child_table ADD CONSTRAINT FK_125B5ABCD871DC26E524616D FOREIGN KEY (second_id, first_id) REFERENCES parent_table (second_id, first_id);
  

最新外国关键错误2014-04-30 12:41:26 f3c外键错误

     

表测试约束/ #sql-4b8_37:
  FOREIGN KEY(second_id,   first_id)REFERENCES parent_table(second_id,first_id):

     

找不到   引用表中显示引用列的索引   作为表中的第一列或列类型以及引用的列   表与约束不匹配。请注意内部存储类型   在使用> = InnoDB-4.1.12创建的表中更改了ENUM和SET,以及   旧表中的这些列不能被new中的这些列引用   表。看到   http://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html   正确的外键定义。

0 个答案:

没有答案