[英]mysql foreign key error in Laravel 5.1
我创建了两个迁移:
迁移1
Schema::create('responders', function (Blueprint $table) {
$table->increments('id');
$table->string('user_id');
$table->double('latitude', 10, 6);
$table->double('longitude', 10, 6);
$table->timestamps();
});
迁移2
Schema::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');
});
当我开始迁移时,将抛出错误消息:
[照亮\\数据库\\ QueryException]
SQLSTATE [HY000]:常规错误:1215无法添加外键约束(SQL:alter tabledevices
add constraint devices_user_id_foreign外键(user_id
)引用responders
(user_id
)删除级联)
[PDOException]
SQLSTATE [HY000]:常规错误:1215无法添加外键约束
我特别注意数据类型是一样的。 在这种情况下,两者都是string
类型。 为什么无法建立外键?
外键是引用另一个表的列(通常是主键 )的一列(或多列)。 外 键的目的是确保数据的引用完整性。 换句话说,只允许出现在数据库中的值。
responders
表中的user_id
不是一个key
,这就是它显示此错误的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.