gpt4 book ai didi

mysql - Laravel 4迁移问题中的外键

转载 作者:IT老高 更新时间:2023-10-28 23:45:37 24 4
gpt4 key购买 nike

我刚刚创建了一个新的 Laravel 4 项目,发现架构构建器的外键方面发生了奇怪的事情。如果我在任何迁移中使用 ->foreign() 方法,我会抛出 MySQL 错误 150 和一般错误 1005。根据 laravel.com/docs 上的文档,底部的两个场景应该工作?有人知道他们为什么不这样做吗?

以下确实有效:

    Schema::create('areas', function($table)
{
$table->engine ='InnoDB';
$table->increments('id');

$table->integer('region_id')->references('id')->on('regions');

$table->string('name', 160);
$table->timestamps();
});

但这两个不起作用:

    Schema::create('areas', function($table)
{
$table->engine ='InnoDB';
$table->increments('id');

$table->foreign('region_id')->references('id')->on('regions');

$table->string('name', 160);
$table->timestamps();
});

Schema::create('areas', function($table)
{
$table->engine ='InnoDB';
$table->increments('id');

$table->integer('region_id');
$table->foreign('region_id')->references('id')->on('regions');

$table->string('name', 160);
$table->timestamps();
});

最佳答案

检查您的 id 类型。 Laravel 4 创建一个带有 int(10) 无符号的增量 id。如果您创建一个基本整数并尝试在其上放置一个外键,它将失败。

正如 this link 的文档中所建议的那样,您应该使用 $table->unsignedInteger(YOUR_ID_NAME); 创建外部 id 以使其工作。

关于mysql - Laravel 4迁移问题中的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16928740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com