[英]Laravel 6: SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
[英]SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint in laravel 8
嗨,我正在嘗試創建類別,然后創建子類別,因此如果刪除類別,子類別也將在這里被刪除我到目前為止所做的創建了一個名為類別的 model 還創建了一個子類別 model
運行該類別的遷移
public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('image');
$table->string('slug');
$table->timestamps();
});
}
在我的子類別遷移中,我定義了
public function up()
{
Schema::create('subcategories', function (Blueprint $table) {
$table->increments('id');
$table->unsignedBigInteger('category_id');
$table->string('name');
$table->string('slug');
$table->timestamps();
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
});
}
當我嘗試遷移時,我遇到了錯誤,指出 Illuminate\Database\QueryException
SQLSTATE [HY000]:一般錯誤:1215 無法添加外鍵約束(SQL:alter table subcategories
add constraint subcategories_category_id_foreign
外鍵( category_id
)在刪除級聯時引用categories
( id
)
我的 laravel 版本是 8.40 nd sqlversion 是 5.7.24
確實改變了兩個表的時間戳仍然沒有工作
2021_06_09_000000_create_categories_table.php 2021_06_10_055026_create_subcategories_table.php
即使我嘗試過
$table->foreignId('category_id')->constrained('categories');
只需使用
$table->foreignId('category_id)
代替
$table->unsignedBigInteger('category_id')
$table->foreign('category_id')->references('id')
為此,您必須首先創建表,然后添加外鍵。
像這樣
Public function up()
{
Schema::create('subcategories', function (Blueprint $table) {
$table->increments('id');
$table->unsignedBigInteger('category_id');
$table->string('name');
$table->string('slug');
$table->timestamps();
});
Schema::table('priorities', function($table) {
$table->foreign('category_id')->references('id')->on('users')->onDelete('cascade');
});
}
有關更多詳細信息,您可以參考此
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('image');
$table->string('slug');
$table->timestamps();
});
Schema::create('subcategories', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('category_id');
$table->string('name');
$table->string('slug');
$table->timestamps();
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.