为了做作业,我必须在laravel 7中做一个待办事项清单,我要做数据库,但是当我尝试为表任务创建外键时
和一个表类别程序失败,出现以下公式:“ SQLSTATE [HY000]:常规错误:1824无法打开引用表'类别'(SQL:更改表tasks
添加约束tasks_category_id_foreign
外键(categ
ory_id
)引用categories
([id
)在删除级联上)“
我已经做了很多次,但是我不明白为什么有人可以解释为什么我不工作正确的方法
迁移尝试在tasks
之前创建categories
表,但在尝试创建FK时categories
表仍然不存在。
交换更改文件名的迁移顺序。每个位于database/migrations
的迁移文件在名称之前都有一个日期时间。对其进行更改,以使任务迁移的日期大于类别一。
Gus Costa会是正确的,你应该按照他说的做,但是我想补充一点,外键应为unsigned
这里您会找到一些不错的答案"General error: 1005 Can't create table" Using Laravel Schema Build and Foreign Keys
// CREATING TABLE
Schema::create('table_name', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->integer('field_id')->unsigned; //for field that contains foreign key constraint
});
// FOREIGN KEY CONSTRAINT
Schema::table('stock', function ($table) {
$table->foreign('field_id')->references('id')->on('some_table')->onDelete('cascade')->onUpdate('cascade');
});