我创建了两个迁移:
迁移1Schema::create('responders', function (Blueprint $table) {
$table->increments('id');
$table->string('user_id');
$table->double('latitude', 10, 6);
$table->double('longitude', 10, 6);
$table->timestamps();
});
迁移2Schema::create('devices', function (Blueprint $table) {
$table->increments('id');
$table->string('user_id');
$table->string('device_id');
$table->string('device_token');
$table->timestamps();
$table->foreign('user_id')
->references('user_id')
->on('responders')
->onDelete('cascade');
});
当我开始迁移时,将抛出错误消息:
[Illuminate\Database\QueryException]
SQLSTATE[HY000]:常规错误:1215无法添加外键约束(SQL:alter tabledevicesadd constraint devices_user_id_foreign外键(user_id)referencesresponders(user_id)on delete cascade)
[PDOException]
SQLSTATE[HY000]:常规错误:1215无法添加外键约束
我特别注意数据类型是相同的。在本例中,这两种类型都是string。为什么外键不能建立?