【发布时间】:2019-01-11 04:40:42
【问题描述】:
我正在尝试向我的用户表中添加一个 permission_id 外键,该表将引用我的权限表中的 id。目前我构建了以下迁移:
<?php
class AddPermissionIdForeignKeyToUsersTable extends Migration
{
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->unsignedInteger('permission_id')->after('id');
$table->foreign('permission_id')->references('id')->on('permissions')->onDelete('cascade');
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('permission_id');
});
}
}
但我收到以下错误:
SQLSTATE[23000]:违反完整性约束:1452 无法添加或 更新子行:外键约束失败 (
eyes.#sql-22f0_3dd, 约束users_permission_id_foreign外键 (permission_id) 引用p ermissions(id) 开 DELETE CASCADE) (SQL: alter tableusers添加约束users_permission_id_foreign外键 (permission_id) 引用permissions(id) 删除级联)在 PDOStatement.php 第 144 行:
SQLSTATE[23000]:违反完整性约束:1452 无法添加或 更新子行:外键约束失败 (
eyes.#sql-22f0_3dd,约束users_permission_id_foreign外键 (permission_id) 引用p ermissions(id) 开 删除级联)在 PDOStatement.php 第 142 行:
SQLSTATE[23000]:违反完整性约束:1452 无法添加或 更新子行:外键约束失败 (
eyes.#sql-22f0_3dd, 约束users_permission_id_foreign外键 (permission_id) 引用p ermissions(id) 开 删除级联)
【问题讨论】: