Php “Yii2迁移”;“外键约束格式不正确”;
以下是我在迁移中添加外键的方式:Php “Yii2迁移”;“外键约束格式不正确”;,php,mysql,sql,yii2,foreign-keys,Php,Mysql,Sql,Yii2,Foreign Keys,以下是我在迁移中添加外键的方式: $this->addForeignKey( 'fk-auth_item_ibfk_1', 'auth_item', 'rule_name', 'auth_rule', 'name', 'SET NULL', 'CASCADE' ); 例外情况: Exception 'yii\db\Exception' with message 'SQL
$this->addForeignKey(
'fk-auth_item_ibfk_1',
'auth_item',
'rule_name',
'auth_rule',
'name',
'SET NULL',
'CASCADE'
);
例外情况:
Exception 'yii\db\Exception' with message 'SQLSTATE[HY000]: General error: 1005 Can't create table `yii`.`#sql-1ab_85` (errno: 150 "Foreign key constraint is incorrectly formed")
错误信息:
Error Info:
Array
(
[0] => HY000
[1] => 1005
[2] => Can't create table `yii`.`#sql-1ab_af` (errno: 150 "Foreign key constraint is incorrectly formed")
)
感谢您的帮助。我不知道为什么会这样。我已经检查了字段的类型和大小是否相同 确保字段“rule_name”和“name”的类型和/或长度相同(例如,都是INT(11)),是我检查的第一件事吗?除此之外,我完全不知道我认为定义的约束有问题。
'fk-auth_item_ibfk_1'
你能把它改成fk_auth_item_ibfk_1
并检查一下吗。哈哈@davey思维一致:fk的名字很好。也许一张桌子是MyISAM,另一张是InnoDB?