我不明白我的迁移设置有什么问题。尝试为现有表添加外键时出现此错误。
Migrating: 2019_11_27_201351_add_foreign_key_to_tags
Illuminate\Database\QueryException : SQLSTATE[HY000]: General error: 1005 Can't create table `tip`.`tags` (errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter table `tags` add constraint `tags_website_id_foreign` foreign key (`website_id`) references `websites` (`id`))
我尝试在其上创建外键的表
public function up()
{
Schema::create('tags', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('tagname')->nullable();
$table->integer('website_id')->unsigned();
$table->string('tag_category');
$table->timestamps();
});
}
这是我尝试引用的表格:
public function up()
{
Schema::create('websites', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('websiteName')->nullable();
$table->timestamps();
});
}
这是我正在调用的迁移
public function up()
{
Schema::table('tags', function (Blueprint $table) {
//
$table->foreign('website_id')->references('id')->on('websites');
});
}
在创建所有表之后将调用此迁移。感谢您的帮助
答案 0 :(得分:0)
好的,我找到了解决方案。创建标签表时,代替
$table->integer('website_id')->unsigned();
我需要使用$table->unsignedBigInteger('website_id');
更改此设置后,迁移成功运行