Php 在Laravel上,我得到错误errno:150“;“外键约束格式不正确”;
我是拉威尔的新手,在迁移方面遇到了一些问题 表名的拼写是准确的,但我仍然得到错误 错误状态 SQLSTATE[HY000]:一般错误:1005无法创建表Php 在Laravel上,我得到错误errno:150“;“外键约束格式不正确”;,php,laravel,Php,Laravel,我是拉威尔的新手,在迁移方面遇到了一些问题 表名的拼写是准确的,但我仍然得到错误 错误状态 SQLSTATE[HY000]:一般错误:1005无法创建表 first_db\sql-41c_2f(错误号:150“外键约束为 格式不正确”)(SQL:alter tablefeesadd约束 fees\u academic\u id\u foreign外键(academic\u id)参考 学术(学术id) 错误指向下面的此文件: Schema::create('fees', function (Bl
first_db
\sql-41c_2f
(错误号:150“外键约束为
格式不正确”)(SQL:alter tablefees
add约束
fees\u academic\u id\u foreign
外键(academic\u id
)参考
学术
(学术id
)
错误指向下面的此文件:
Schema::create('fees', function (Blueprint $table) {
$table->increments('fee_id');
$table->integer('academic_id')->unsigned;
$table->integer('level_id')->unsigned;
$table->integer('fee_type_id')->unsigned;
$table->string('fee_heading',200)->nullable;
$table->float('amount', 8, 2);
$table->foreign('academic_id')->references('academic_id')->on('academics');
$table->foreign('level_id')->references('level_id')->on('levels');
$table->foreign('fee_type_id')->references('fee_type_id')->on('feestype');
});
有什么我做错了吗?unsigned应该是一个函数:
$table->integer('academic_id')->unsigned();
此外部列应未签名
Schema::create('fees', function (Blueprint $table) {
$table->increments('fee_id');
$table->unsignedInteger('academic_id');
$table->unsignedInteger('level_id');
$table->unsignedInteger('fee_type_id');
$table->string('fee_heading',200)->nullable();
$table->float('amount', 8, 2);
$table->foreign('academic_id')->references('academic_id')->on('academics');
$table->foreign('level_id')->references('level_id')->on('levels');
$table->foreign('fee_type_id')->references('fee_type_id')->on('feestype');
});
来源:它看起来像是
academical\u id
的约束抛出了这个。可能是academics
表不存在,没有该字段,有该字段,但定义不同(char,signed int,诸如此类)或诸如此类?外键列和引用列必须是相同的数据类型,并且在迁移中$table->integer('academical_id')->unsigned()
像这样使用无符号引用: