【问题标题】:Add foreign key in Yii migrations在 Yii 迁移中添加外键
【发布时间】:2015-03-03 20:08:03
【问题描述】:

我尝试将外键添加到表中,但是当我运行迁移时出现此错误:

 General error: 1005 Can't create table 'chooseone.#sql-49a_49'

这很奇怪,因为chooseone 是我的数据库的名称。以下是我尝试添加 FK 的方法:

$this->addForeignKey('FK_user_profile', 'tbl_profile', 'user_id', 'tbl_user', 'id', 'CASCADE', 'CASCADE');

那么我做错了什么?

【问题讨论】:

  • 您是否在添加表之后添加外键?确保表 tbl_profiletbl_user 存在并且拼写正确。另外,试试不带前缀tbl_
  • @Martijn Hols ,当我运行 yiic migrate 时,首先创建 tbl_user 表,然后创建 tbl_profile,在创建 tbl_profile 时我立即创建 FK。从我的旧项目中复制的代码,其中迁移与表前缀一起正常工作。

标签: php mysql yii foreign-keys database-migration


【解决方案1】:

我解决了这个问题。我在 tbl_user 中更改了 id 列的定义:

'id'       => 'INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY',  

'id'       => 'pk',

一切正常。

【讨论】:

猜你喜欢
  • 2015-09-22
  • 1970-01-01
  • 2016-02-11
  • 2020-03-13
  • 2020-01-23
  • 2014-03-31
  • 1970-01-01
  • 2014-05-02
相关资源
最近更新 更多