首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将外键添加到表中

问将外键添加到表中
EN

Stack Overflow用户
提问于 2018-08-03 09:56:13
回答 1查看 310关注 0票数 0

我试图向用户表中添加一个permission_id外键,该外键将引用权限表中的id。目前,我在移民之后建造了:

代码语言:javascript
复制
<?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');
        });
    }
}

但我得到了以下错误:

SQLSTATE23000:完整性约束违反: 1452不能添加或更新子行:外键约束失败(eyes.#sql-22f0_3dd、约束users_permission_id_foreign外键(permission_id)在删除级联中引用p ermissions (id) ) (SQL: alter users添加约束users_permission_id_foreign外键(permission_id)引用permissions (id) 在PDOStatement.php第144行: SQLSTATE23000:完整性约束违反:1452年不能添加或更新子行:外键约束失败(eyes.#sql-22f0_3dd、constraint users_permission_id_foreign Integrity (permission_id)引用p ermissions (id) ) 在PDOStatement.php第142行中: SQLSTATE23000:完整性约束违反:1452年不能添加或更新子行:外键约束失败(eyes.#sql-22f0_3dd、constraint users_permission_id_foreign Integrity (permission_id)引用p ermissions (id) )

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-03 10:27:49

如果表用户中已经有数据,则需要将字段permission_id声明为可空。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51670046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档