doutu7123 2018-08-03 09:56
浏览 111
已采纳

Laravel将外键添加到表中

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, CONSTRAINT users_permission_id_foreign FOREIGN KEY (permission_id) REFERENCES p ermissions (id) ON DELETE CASCADE) (SQL: alter table users add constraint users_permission_id_foreign foreign key (permission_id) references permissions (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, CONSTRAINT users_permission_id_foreign FOREIGN KEY (permission_id) REFERENCES p 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, CONSTRAINT users_permission_id_foreign FOREIGN KEY (permission_id) REFERENCES p ermissions (id) ON DELETE CASCADE)

  • 写回答

1条回答 默认 最新

  • dongshan7708 2018-08-03 10:27
    关注

    If you have already data in your table users you need to declare your field permission_id as nullable.

    $table->unsignedInteger('permission_id')->nullable()->after('id');

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵