Laravel 尝试在同一个表中创建一个从整数到整数的外键时出现一般错误1215
我试图在同一个表中生成外键,无论我测试什么,我都会得到一个错误 在Connection.php第647行中: SQLSTATE[HY000]:一般错误:1215无法添加外键约束(SQL:alter tableLaravel 尝试在同一个表中创建一个从整数到整数的外键时出现一般错误1215,laravel,eloquent,Laravel,Eloquent,我试图在同一个表中生成外键,无论我测试什么,我都会得到一个错误 在Connection.php第647行中: SQLSTATE[HY000]:一般错误:1215无法添加外键约束(SQL:alter tabletrip\u tagsadd constrainttrip\u tags\u parent\u foreign外键(parent)请参阅 encestrip_标签(id)在删除级联上) 在Connection.php第449行: SQLSTATE[HY000]:一般错误:1215无法添加外键
trip\u tags
add constrainttrip\u tags\u parent\u foreign
外键(parent
)请参阅
encestrip_标签
(id
)在删除级联上)
在Connection.php第449行:
SQLSTATE[HY000]:一般错误:1215无法添加外键约束
这是我的密码
Schema::create('trip_tags', function (Blueprint $table) {
$table->engine = "InnoDB";
$table->uuid('uuid')->unique();
$table->integer('id')->unsigned();
$table->string('name')->nullable();
$table->integer('parent')->unsigned()->nullable();
$table->timestamps();
});
Schema::table('trip_tags', function (Blueprint $table) {
$table->foreign('parent')
->references('id')
->on('trip_tags')
->onDelete('cascade');
});
我试着将parent指向id,两者都是无符号整数,我猜创建外键失败的原因是它们在某种程度上不兼容,我无法找出错误所在
我试图将parent指向uuid,但后来不得不将它变成一个字符串,这就成功了。但是我必须将父点设置为整数id,并且我无法使用我们的错误迁移它。这是因为您的
id
列上没有索引
将->unique()
添加到声明中:
$table->integer('id')->unsigned()->unique();
这是因为您的
id
列上没有索引
将->unique()
添加到声明中:
$table->integer('id')->unsigned()->unique();
!== <代码>无符号整数hi devk?我没有指向uuid列,只是指向id命名的列,知道会发生什么吗?哦,对不起。我的错误。那么我认为发生错误是因为您没有
id
上的索引。尝试向它添加unique()
。就是这样!你想发布一个真实的答案吗?我可以向上投票并选择正确答案吗?很乐意帮助:)也将其作为答案发布!==<代码>无符号整数hi devk?我没有指向uuid列,只是指向id命名的列,知道会发生什么吗?哦,对不起。我的错误。那么我认为发生错误是因为您没有id
上的索引。尝试向它添加unique()
。就是这样!你想发布一个真实的答案吗?我可以投票并选择正确的答案吗?很乐意帮助:)也将其作为答案发布