![](/img/trans.png)
[英]SQLSTATE[HY000]: General error: 1005 Can't create table `school`.`posts` (errno: 150 "Foreign key constraint is incorrectly formed")
[英]SQLSTATE[HY000]: General error: 1005 Can't create table `business`.`users` (errno: 150 "Foreign key constraint is incorrectly formed") Laravel 7
我需要在用戶(從 laravel 7 auth 腳手架創建)和類別之間創建一對多關系。 但是當我運行遷移時,我得到這個錯誤:遷移:2014_10_12_000000_create_users_table
照亮\數據庫\查詢異常
SQLSTATE[HY000]: General error: 1005 Can't create table business
。 users
(errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter table users
add constraint users_category_id_foreign
外鍵 ( category_id
) references catgories
( id
) on delete cascade)
這是用戶模式:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('category_id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
$table->foreign('category_id')->references('id')->on('catgories')
->onDelete('cascade');
});
這是類別:
Schema::create('categories', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('category');
$table->timestamps();
});
我做了一些搜索,我發現這種錯誤有兩個原因,第一個是類別表遷移應該在用戶表之前完成,第二個是用戶模式上的類別 id 數據類型和類別中的一個 id 必須相同,我驗證了這兩個條件,但我仍然遇到相同的錯誤。 如果有人能告訴我出了什么問題,我將不勝感激!
更改on('categories')
而不是on('catgories')
你寫了catgories
。 但它必須是categories
$table->foreign('category_id')->references('id')->on('categories')
->onDelete('cascade');
當外鍵的類型與主鍵的類型不匹配時,就會發生這種情況。
確保category_id
的類型和長度與類別表類別的主鍵完全相同。 因此,如果您聲明為無符號大 integer,請確保categories.id
為無符號大 integer。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.