ホームページ > バックエンド開発 > PHPチュートリアル > Laravel の移行で「一意のキーが長すぎます」エラーを修正する方法は?

Laravel の移行で「一意のキーが長すぎます」エラーを修正する方法は?

Linda Hamilton
リリース: 2024-10-30 04:07:02
オリジナル
988 人が閲覧しました

How to Fix the

Laravel 移行: 「一意のキーが長すぎます」エラーのトラブルシューティング

Laravel 移行の「一意のキーが長すぎます」エラーは、一意のキーが長すぎる場合に発生します。インデックスは、許可される最大長を超えるキーを使用しようとします。このエラーは、電子メール アドレスなどの大きなデータ型を持つ列に一意のインデックスを定義するときに発生する可能性があります。

この問題を解決するには、次の解決策を検討してください:

1.列の長さを短くします:

1 つの方法は、問題の列に短い長さを指定することです。たとえば、提供された移行では、電子メール列は 320 文字の長さで定義されています。このエラーを解決するには、この長さをメール列のデフォルトの長さである 250 文字に減らしてみてください。

2.デフォルトの文字列長をオーバーライドする (Laravel 5.4):

Laravel 5.4 を使用している場合は、次の手順を使用してデフォルトの文字列長をオーバーライドできます:

  • AppServiceProvider。 php ファイルで、boot() メソッド内に次のコードを追加します。
<code class="php">use Illuminate\Database\Schema\Builder;

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

このコードは、デフォルトの文字列長を 191 文字に設定します。これは、ほとんどの場合に十分な長さです。

3.主キーの大きなインクリメントを有効にする:

エラーが解決しない場合は、テーブルの主キーが自動インクリメントに設定されているかどうかを確認してください (通常は、increments('id') として定義されます)。その場合は、次のように「大きな整数」自動インクリメント (bigIncrements('id')) に変換してみてください。

<code class="php">$table->bigIncrements('id');</code>
ログイン後にコピー

この変更により、主キーがより大きな値に対応できるようになり、一部の領域が解放される可能性があります。インデックス内のスペース。

4.他のインデックスとキーを確認します:

最大キー長違反の原因となる可能性のある他のインデックスやキーがテーブル上にないことを確認します。存在する場合は、それらのインデックスを削除または変更して、インデックス領域のスペースを解放してみてください。

これらの解決策を実装することで、「一意のキーが長すぎます」エラーを解決し、目的の一意のキーを正常に作成できるはずです。データベーステーブルのインデックス。

以上がLaravel の移行で「一意のキーが長すぎます」エラーを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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