Lef*_*eff 9 mysql laravel laravel-migrations
我正在尝试为inventories使用此迁移创建的表运行迁移:
Schema::create('inventories', function (Blueprint $table) {
$table->increments('id');
$table->integer('remote_id')->unsigned();
$table->integer('local_id')->unsigned();
$table->string('local_type');
$table->string('url')->nullable()->unique();
$table->timestamps();
});
Run Code Online (Sandbox Code Playgroud)
我正在尝试添加运行迁移,我在表中添加了一个外键:
Schema::table('inventories', function (Blueprint $table) {
$table->foreign('local_id')->references('id')->on('contents')->onDelete('cascade');
});
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行迁移时出现错误:
[Illuminate\Database\QueryException]
SQLSTATE [23000]:完整性约束违规:1452无法添加或更新子行:外键约束失败(middleton
.#sql-5d6_162a,CONSTRAINTinventories_local_id_foreignFOREIGN KEY(local_id)REFERENCEScontents(id)ON DELETE CASCADE)(SQL:alter table 在删除级联上inventories添加约束inventories_local_id_foreign外键(local_id)引用contents(id))Run Code Online (Sandbox Code Playgroud)Schema::create('inventories', function (Blueprint $table) { $table->increments('id'); $table->integer('remote_id')->unsigned(); $table->integer('local_id')->unsigned(); $table->string('local_type'); $table->string('url')->nullable()->unique(); $table->timestamps(); });SQLSTATE [23000]:完整性约束违规:1452无法添加或更新子行:外键约束失败(
middleton
.#sql-5d6_162a,CONSTRAINTinventories_local_id_foreignFOREIGN KEY(local_id)REFERENCEScontents(id)ON DELETE CASCADE)
我究竟做错了什么?
Rom*_*rik 11
有同样的问题.通过添加nullable到字段来修复它
Schema::create('table_name', function (Blueprint $table) {
...
$table->integer('some_id')->unsigned()->nullable();
$table->foreign('some_id')->references('id')->on('other_table');
...
});
Run Code Online (Sandbox Code Playgroud)
请注意,迁移后所有已存在的行都将具有some_id = NULL
| 归档时间: |
|
| 查看次数: |
5612 次 |
| 最近记录: |