当前位置: 首页 > 知识库问答 >
问题:

试图在同一表中以整数对整数的方式生成外键时出现一般错误1215

吕骞尧
2023-03-14

我试图在同一个表中创建一个外键,无论我测试什么,我都得到一个错误。

在connection.php行647中:

SQLSTATE[HY000]:常规错误:1215无法添加外键约束(SQL:alter tableTRIP_TAGSadd CONSTAINTTRIP_TAGS_PARENT_FOREFIGER外键(parent)引用删除级联上的TRIP_TAGS(id)

在connection.php第449行中:

SQLSTATE[HY000]:常规错误:1215无法添加外键约束

这是我的密码

    Schema::create('trip_tags', function (Blueprint $table) {
        $table->engine = "InnoDB";
        $table->uuid('uuid')->unique();
        $table->integer('id')->unsigned();
        $table->string('name')->nullable();
        $table->integer('parent')->unsigned()->nullable();

        $table->timestamps();
    });

    Schema::table('trip_tags', function (Blueprint $table) {

        $table->foreign('parent')
            ->references('id')
            ->on('trip_tags')
            ->onDelete('cascade');
    });

我试着把parent指向id,两个都是无符号的整数,我猜创建外键失败的原因是它们在某种程度上不兼容,我不知道哪里出了问题。

我试图将parent指向uuid,但必须将其设置为字符串,这样就成功了。但是我必须让父指针指向id,它是整数,我不能让它在错误的情况下迁移。

共有1个答案

湛光明
2023-03-14

这是因为id列没有索引。

->unique()添加到声明:

$table->integer('id')->unsigned()->unique();
 类似资料:
  • 本文向大家介绍.net生成缩略图及水印图片时出现GDI+中发生一般性错误解决方法,包括了.net生成缩略图及水印图片时出现GDI+中发生一般性错误解决方法的使用技巧和注意事项,需要的朋友参考一下   使用该方法读取图片时。导致图片文件被死锁无法释放资源,导置重写资源时出现一般性错误。   解决方法将代码改成以下代码 非常简单实用吧,有相同问题的小伙伴可以参考下

  • 有一个unique的数组列表,我需要将它们在z大小的数组列表之间随机分布。请记住: 是可变值 一个示例是,当您有一个由8个元素组成的数组的原点,并且希望输出3个大小为6的数组时: 原始数组列表:[1, 2, 3, 4, 5, 6, 7, 8] 结果输出:[7,5,3,6,4,8],[7,5,1,8,2,3],[8,1,2,3,4,6] 我开发了一个算法,并在注释中进行了解释。首先,我创建了一个包含

  • 问题内容: 如何生成不猜测下一个数字的java中的整数的唯一ID? 问题答案: 它需要有多独特? 如果它仅在流程中唯一,则可以在每次需要新值时使用和调用。

  • 我正在用C语言开发ASCII游戏。玩家绕着障碍物('X')移动。玩家拥有生命值并在遇到障碍时失去生命值。我将健康声明为int,并设置为100: 然后我做了一个检测碰撞的开关盒。然后我输入: 然后运行程序。我遇到了一个障碍,它降低了健康度,但增加了一个额外的数字(例如,不是说99,而是说999)。我试着调试,但什么也没找到。我做错了什么?以下是完整的代码:

  • 尝试在IntelliJ中构建我的第一个helloWorld程序时遇到以下同步错误。 我第一次在运行Windows 10的计算机上安装了IntelliJ。

  • 问题内容: 我上面有一个方法,该方法应生成用户指定的随机元素数组。随机生成的整数应介于0到10之间(含0和10)。我能够生成随机整数,但是我遇到的问题是检查唯一性。我尝试检查唯一性是在上面的代码中,但是数组仍然包含整数的重复项。我做错了什么,有人可以给我提示吗? 问题答案: 您确实找到重复的值。但是,您将其替换为另一个可能重复的随机数。相反,请尝试以下操作: 但是,这种方法效率低下。我建议列出数字

  • 我发现了使用Java+Spring+FreeMarker非常有趣的东西 从java控制器中,我将“-1”作为整数值传递。在freemarker模板中,在${value}之后,我不时会得到“1-”而不是“-1”,这种情况时有发生。 知道为什么会这样吗?自由马克虫?

  • 我正在创建一个C-prog,它需要一个由17个整数组成的数组,所有整数都小于18并且是唯一的。这是我现在能做的: 我现在的算法是,每次rand()生成一个数字时,都会在数组中检查这个数字是否已经存在,如果已经存在,则rand()会继续生成一个数字,直到得到一个唯一的数字,然后将其存储在数组中,如果数组中不存在这样的数字,则直接输入到数组中。