当我运行php artisan migrate时,我不断收到此错误:
[Illuminate \ Database \ QueryException] SQLSTATE [HY000]:常规错误:1005无法创建表binomi . #sql-3910_c0b(错误号:150“外键约束形成错误”)(SQL:alter table users add constraint users_activity_foreign删除级联上的外键(活动)引用活动(id))[PDOException] SQLSTATE [HY000]:常规错误:1005无法创建表binomi . #sql-3910_c0b(错误:150“外键约束形成错误”)
这是我的用户和活动模型的 schema ,这些是应用程序中唯一的模型 .
用户迁移:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->integer('activity');
$table->rememberToken();
$table->timestamps();
});
Schema::table('users', function($table){
$table->foreign('activity')->references('id')->on('activity')->onDelete('cascade');
}
活动迁移:
Schema::create('activty', function (Blueprint $table) {
$table->increments('id');
$table->string('label');
});
3 回答
将
unsigned()
修饰符添加到外键列:您的活动表有拼写错误,它在您的架构创建中显示
activty
. 另外,我建议将其重命名为activities
,除非你只有一个 .increments()
自动指定为无符号 .因此,请确保在下面的代码中添加unsigned:
并检查你是否输了错字