Php 外键约束,即使在使用bigIncrements和unsignedBigInteger之后
所以在我的任务迁移表中,我试图引用一个外键约束 Illumb\Database\QueryException:SQLSTATE[HY000]:一般错误:1215无法添加外键约束(SQL:alter tablePhp 外键约束,即使在使用bigIncrements和unsignedBigInteger之后,php,laravel,eloquent,Php,Laravel,Eloquent,所以在我的任务迁移表中,我试图引用一个外键约束 Illumb\Database\QueryException:SQLSTATE[HY000]:一般错误:1215无法添加外键约束(SQL:alter tabletasksadd constrainttasks\u article\u id\u foreign外键(article\u id)引用articles(id)删除级联) 我跟踪了谷歌关于这个错误的信息,它说使用unsignedbiginger作为bigingress引用。我这样做了,但仍然出
tasks
add constrainttasks\u article\u id\u foreign
外键(article\u id
)引用articles
(id
)删除级联)
我跟踪了谷歌关于这个错误的信息,它说使用unsignedbiginger作为bigingress引用。我这样做了,但仍然出现以下错误:
我点击了这个链接:
你们能给我指一下正确的方向吗
{
Schema::create('tasks', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title');
$table->string('task_url');
$table->string('task_unique_id');
$table->unsignedBigInteger('user_id')->default(1);
$table->unsignedBigInteger('article_id')->nullable();
$table->unsignedBigInteger('project_id')->nullable();
$table->unsignedBigInteger('category_id')->nullable();
$table->boolean('is_completed')->default(0);
$table->timestamps();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade');
$table->foreign('project_id')->references('id')->on('projects')->onDelete('cascade');
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
});
}
您可以在创建方法之前禁用外键检查,然后重新启用
{
Schema::disableForeignKeyConstraints();
Schema::create('tasks', function (Blueprint $table) {
....
});
Schema::enableForeignKeyConstraints();
}
项目表存在?在迁移任务之前不存在。在文章、项目、类别中,它们都位于任务表之后。您不能引用不存在的表。是否在迁移文件的更改时间戳中创建了所有引用的数据之后运行此迁移?我不知道如何在任务表之前运行特定的迁移?感谢这一点,我更改了月份号。更改迁移文件名,执行composer dump autoload有效。无论如何,谢谢你的帮助:)