Cakephp 迁移 - 一般错误:1215 无法添加外键约束



我在某些迁移中创建外键时遇到问题。

我有以下几点:

20180926184217_Courses.php

public function change()
{
$table = $this->table('courses', ['id' => true, 'primary_key' => ['id']]);
$table
->addColumn('name', 'string', ['default' => null, 'limit' => 150, 'null' => false])
->addColumn('town', 'string', ['default' => null, 'limit' => 50, 'null' => true])
->create();
}

20180926191546_Scorecards.php

public function change()
{
$table = $this->table('scorecards', ['id' => true, 'primary_key' => ['id']]);
$table
->addColumn('course_id', 'integer', ['default' => null, 'limit' => 10, 'null' => false])
->addColumn('description', 'string', ['default' => null, 'limit' => 255, 'null' => true])
->addColumn('tee', 'string', ['default' => null, 'limit' => 15, 'null' => false])
->addForeignKey('course_id', 'courses', 'id', ['delete' => 'SET_NULL', 'update' => 'NO_ACTION', 'constraint' => 'fk_scorecard_course'])
->create();
}

当我运行bin/cake migrations migrate时,出现以下错误:

异常:SQLSTATE[HY000]:常规错误:1215 无法在 [*/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php,第 167 行] 中添加外键约束 2018-09-26 19:12:50 错误: [PDOException] SQLSTATE[HY000]: 一般错误: 1215 无法在第 167行的 */vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php 中添加外键约束

谁能帮忙?我在这里查看了其他答案,但似乎没有帮助。

戴夫

当您的列不可为空时,无法SET_NULL删除操作。更改代码,您将准备好进行迁移。

最新更新