I am trying to add a permission_id foreign key to my users table which shall reference the id in my permissions table. Currently I built following Migration:
<?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');
});
}
}
But I get following error:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
eyes
.#sql-22f0_3dd
, CONSTRAINTusers_permission_id_foreign
FOREIGN KEY (permission_id
) REFERENCESp ermissions
(id
) ON DELETE CASCADE) (SQL: alter tableusers
add constraintusers_permission_id_foreign
foreign key (permission_id
) referencespermissions
(id
) on delete cascade)In PDOStatement.php line 144:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
eyes
.#sql-22f0_3dd
, CONSTRAINTusers_permission_id_foreign
FOREIGN KEY (permission_id
) REFERENCESp ermissions
(id
) ON DELETE CASCADE)In PDOStatement.php line 142:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
eyes
.#sql-22f0_3dd
, CONSTRAINTusers_permission_id_foreign
FOREIGN KEY (permission_id
) REFERENCESp ermissions
(id
) ON DELETE CASCADE)