首頁 >資料庫 >mysql教程 >如何修復 Laravel 遷移錯誤:超過唯一密鑰長度?

如何修復 Laravel 遷移錯誤:超過唯一密鑰長度?

Linda Hamilton
Linda Hamilton原創
2024-12-01 16:31:10353瀏覽

How to Fix Laravel Migration Error: Unique Key Length Exceeded?

Laravel 遷移錯誤疑慮:超過唯一密鑰長度

嘗試在 Laravel中為電子郵件列建立唯一金鑰時,您可能會遇到下列錯誤:

[IlluminateDatabaseQueryException] SQLSTATE[42000]:語法錯誤或存取衝突:1071 指定的鍵太長;最大密鑰長度為767 位元組

儘管您已將索引鍵指定為unique() 方法的第二個參數,但錯誤仍然存在。這可能是由於電子郵件列的長度造成的。

5.4 之前的 Laravel 版本的解決方案:

要解決此錯誤,請減少電子郵件列的長度。預設長度為250 個字符,因此請在遷移中修改以下行:

$table->string('email', 250);

或者,您可以使用預設長度:

$table->string('email');

Laravel 5.4 的解決方案以上:

在Laravel 5.4中,您可以設定預設字串長度以避免此錯誤。在 AppServiceProvider.php 檔案中,將下列程式碼新增至 boot 方法:

use Illuminate\Database\Schema\Builder;

public function boot()
{
    Builder::defaultStringLength(191);
}

這將確保所有字串列使用的最大長度為 191 個字元。

以上是如何修復 Laravel 遷移錯誤:超過唯一密鑰長度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn