簡體   English   中英

SQLSTATE [HY000]:一般錯誤:1215 無法在 laravel 8 中添加外鍵約束

[英]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 )在刪除級聯時引用categoriesid

我的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM