SQLSTATE [HY000]:一般错误:1005 无法创建表`Data`.`company eligibilities`(errno:150“外键约束形成错误”)
Posted
技术标签:
【中文标题】SQLSTATE [HY000]:一般错误:1005 无法创建表`Data`.`company eligibilities`(errno:150“外键约束形成错误”)【英文标题】:SQLSTATE[HY000]: General error: 1005 Can't create table `Data`.`company_eligibilities` (errno: 150 "Foreign key constraint is incorrectly formed") 【发布时间】:2020-12-02 04:03:03 【问题描述】: public function up()
Schema::create('company_eligibilities', function (Blueprint $table)
$table->id();
$table->string('marks');
$table->integer('company_id')->unsigned();
$table->timestamps();
$table->foreign('company_id')
->references('id')->on('companies')
->onDelete('cascade')
->onUpdate('cascade');
);
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
Schema::dropIfExists('company_eligibilities');
公司迁移在执行上述迁移之前已经完成
当我尝试与外键一起创建表时出现上述错误。我是不是做错了什么??
【问题讨论】:
【参考方案1】:确保在迁移company_eligibilities
之前迁移companies
,将您的外键ID 更改为
无符号大整数,Laravel 5.8 将默认外键设为无符号大整数,6.x 和 7.x 也一样:
$table->bigInteger('company_id')->unsigned();
或者,
$table->unsignedBigInteger('company_id');
【讨论】:
以上是关于SQLSTATE [HY000]:一般错误:1005 无法创建表`Data`.`company eligibilities`(errno:150“外键约束形成错误”)的主要内容,如果未能解决你的问题,请参考以下文章
SQLSTATE [HY000]:一般错误:1364 字段“标题”没有默认值
PDO 错误:SQLSTATE [HY000]:一般错误:2031
SQLSTATE[HY000]:一般错误:在 Laravel 中迁移期间出现 1005