ホームページ > データベース > mysql チュートリアル > Laravel 移行エラーを解決する方法: 一意のキーの長さの制限を超えましたか?

Laravel 移行エラーを解決する方法: 一意のキーの長さの制限を超えましたか?

Linda Hamilton
リリース: 2024-11-30 00:29:09
オリジナル
823 人が閲覧しました

How to Solve Laravel Migration Error: Unique Key Length Limit Exceeded?

Laravel 移行エラー: 一意のキーの長さの制限を超えました

Laravel で、一意のキーを列に追加する移行を作成するときに、文字列が長すぎると、次のエラーが発生する可能性があります:

[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
ログイン後にコピー

このエラー多くの場合、列に短い長さを指定することで解決できます。文字列のデフォルトの長さは 250 文字で、ほとんどの電子メール アドレスやその他の一般的な文字列にはこれで十分です。

特定の移行では、電子メール列を長さ 320 の文字列として定義しました。試してみてください。この長さを 250 またはデフォルト値に減らします:

Schema::create('users', function (Blueprint $table) {
    $table->string('email', 250); // or $table->string('email');
ログイン後にコピー

列の長さを調整してもまだエラーが発生する場合は、デフォルトの文字列長を設定してみてください。あなたのデータベース。 Laravel 5.4 以降では、AppServiceProvider.php ファイルに以下を追加することでこれを実現できます:

use Illuminate\Database\Schema\Builder;

public function boot()
{
    Builder::defaultStringLength(191);
}
ログイン後にコピー

これにより、移行で作成されるすべての新しい列のデフォルトの文字列長が 191 文字に設定されます。

以上がLaravel 移行エラーを解決する方法: 一意のキーの長さの制限を超えましたか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート