当我尝试运行迁移以创建外键约束时,在命令提示符下出现以下错误。我在互联网上搜索了很多内容,并尝试了许多以前相同类型的问题的答案,因此我需要帮助来克服它。不幸的是,没有一个有效的方法
Illuminate \ Database \ QueryException:SQLSTATE [HY000]:常规错误:1005无法创建表
db_blog
。category_posts
(错误号:150“外键约束格式不正确”)(SQL:更改表category_posts
添加约束category_posts_post_id_foreign
外键(post_id
)引用posts
(id
)在删除级联上) 1PDOException::(“ SQLSTATE [HY000]:常规错误:1005无法创建表
>db_blog
。category_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();
});
}
我不知道这方面哪里有问题
答案 0 :(得分:0)
我不知道您的项目的哪个版本,但是在最新版本中,外键使用bigInteger,对于ID,使用bigIncrements。
我还认为,将首先创建post表,而不是category_posts。否则,请先创建它。 您可以确认是否会吗?