首页 文章

一般错误:1005无法创建表

提问于
浏览
0

当我运行php artisan migrate时,我不断收到此错误:

[Illuminate \ Database \ QueryException] SQLSTATE [HY000]:常规错误:1005无法创建表binomi . #sql-3910_c0b(错误号:150“外键约束形成错误”)(SQL:alter table users add constraint users_activity_foreign删除级联上的外键(活动)引用活动(id))[PDOException] SQLSTATE [HY000]:常规错误:1005无法创建表binomi . #sql-3910_c0b(错误:150“外键约束形成错误”)

这是我的用户和活动模型的 schema ,这些是应用程序中唯一的模型 .

用户迁移:

Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->integer('activity');
        $table->rememberToken();
        $table->timestamps();
    });

  Schema::table('users', function($table){
      $table->foreign('activity')->references('id')->on('activity')->onDelete('cascade');
     }

活动迁移:

Schema::create('activty', function (Blueprint $table) {
        $table->increments('id');
        $table->string('label');
    });

3 回答

  • 1

    unsigned() 修饰符添加到外键列:

    Schema::create('users', function (Blueprint $table) {
            ...
            $table->integer('activity')->unsigned();
            $table->rememberToken();
            $table->timestamps();
        });
    
  • 2

    您的活动表有拼写错误,它在您的架构创建中显示 activty . 另外,我建议将其重命名为 activities ,除非你只有一个 .

  • 0

    increments() 自动指定为无符号 .

    因此,请确保在下面的代码中添加unsigned:

    $table->integer('activity')->unsigned();
    

    并检查你是否输了错字

相关问题