如何解决laravel迁移错误“常规错误:1005无法创建表”

时间:2019-07-12 06:09:52

标签: php mysql database laravel

当我尝试运行迁移以创建外键约束时,在命令提示符下出现以下错误。我在互联网上搜索了很多内容,并尝试了许多以前相同类型的问题的答案,因此我需要帮助来克服它。不幸的是,没有一个有效的方法

  

Illuminate \ Database \ QueryException:SQLSTATE [HY000]:常规错误:1005无法创建表db_blogcategory_posts(错误号:150“外键约束格式不正确”)(SQL:更改表category_posts添加约束category_posts_post_id_foreign外键(post_id)引用postsid)在删除级联上)    1

     

PDOException::(“ SQLSTATE [HY000]:常规错误:1005无法创建表db_blogcategory_posts(错误号:150”外键约束格式不正确“)”) >

请使用参数-v查看更多详细信息。

public function up()
    {
        Schema::create('category_posts', function (Blueprint $table) {

            $table->integer('post_id')->unsigned()->index();
            $table->integer('category_id')->unsigned()->index();
            $table->foreign('post_id')->references('id')->on('posts')- 
    >onDelete('cascade');


            $table->timestamps();
        });
    }

我不知道这方面哪里有问题

1 个答案:

答案 0 :(得分:0)

我不知道您的项目的哪个版本,但是在最新版本中,外键使用bigInteger,对于ID,使用bigIncrements。

我还认为,将首先创建post表,而不是category_posts。否则,请先创建它。 您可以确认是否会吗?