首页 > 解决方案 > Laravel 中的外键约束格式不正确

问题描述

我正在使用 Laravel 7 和 PHP 7.4。

我正在处理数据库,但当我尝试为另一个表中的用户生成外键时突然卡住了问题。它应该是直接的过程,我正在关注文档,但仍然出现错误。

一般错误:1005 无法创建表carchain_qrcodesellers(errno: 150 "外键约束格式不正确

用户表

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->bigInteger('id');
        $table->string('name')->unique();
        $table->string('email')->unique();
         });
}

卖家表

public function up()
{
    Schema::create('sellers', function (Blueprint $table) {
        $table->bigInteger('id');
        $table->unsignedBigInteger('user_id');
        $table->string('seller_name');
        $table->string('seller_email');

        $table->foreign('user_id')
            ->references('id')->on('users')
            ->onDelete('cascade');

    });

我哪里出错了?

标签: phpmysqllaravel

解决方案


我认为问题在于您的users表的id是bigInteger而不是bigIncrementsunsignedBigInteger。 在 Laravel 7 中,您可以简单地执行以下操作:$table->id()来创建 id 列。


推荐阅读