Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann der Fehler „Eindeutiger Schlüssel zu lang' bei Laravel-Migrationen behoben werden?

Wie kann der Fehler „Eindeutiger Schlüssel zu lang' bei Laravel-Migrationen behoben werden?

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 04:07:02998Durchsuche

How to Fix the

Laravel-Migration: Fehlerbehebung beim Fehler „Eindeutiger Schlüssel zu lang“

Der Fehler „Eindeutiger Schlüssel zu lang“ bei Laravel-Migrationen tritt auf, wenn ein eindeutiger Schlüssel zu lang ist Der Index versucht, einen Schlüssel zu verwenden, der die maximal zulässige Länge überschreitet. Dieser Fehler kann auftreten, wenn ein eindeutiger Index für eine Spalte mit einem großen Datentyp, beispielsweise einer E-Mail-Adresse, definiert wird.

Um dieses Problem zu beheben, ziehen Sie die folgenden Lösungen in Betracht:

1. Reduzieren Sie die Spaltenlänge:

Ein Ansatz besteht darin, eine kürzere Länge für die betreffende Spalte anzugeben. Beispielsweise ist in der bereitgestellten Migration die E-Mail-Spalte mit einer Länge von 320 Zeichen definiert. Um den Fehler zu beheben, versuchen Sie, diese Länge auf 250 Zeichen zu reduzieren, was die Standardlänge für eine E-Mail-Spalte ist.

2. Standard-Stringlänge überschreiben (Laravel 5.4):

Wenn Sie Laravel 5.4 verwenden, können Sie die Standard-Stringlänge mit den folgenden Schritten überschreiben:

  • Im AppServiceProvider. php-Datei hinzufügen, fügen Sie den folgenden Code innerhalb der boot()-Methode hinzu:
<code class="php">use Illuminate\Database\Schema\Builder;

public function boot()
{
    Builder::defaultStringLength(191);
}</code>

Dieser Code legt die Standardzeichenfolgenlänge auf 191 Zeichen fest, was für die meisten Fälle ausreichend sein sollte.

3. Aktivieren Sie große Inkremente für den Primärschlüssel:

Wenn der Fehler weiterhin besteht, überprüfen Sie, ob der Primärschlüssel der Tabelle auf automatische Inkrementierung eingestellt ist (normalerweise definiert als Inkremente('id')). Wenn ja, versuchen Sie, es wie folgt in eine „große Ganzzahl“ mit automatischer Inkrementierung (bigIncrements('id')) umzuwandeln:

<code class="php">$table->bigIncrements('id');</code>

Diese Änderung ermöglicht es dem Primärschlüssel, größere Werte aufzunehmen, wodurch möglicherweise einige frei werden Leerzeichen im Index.

4. Überprüfen Sie andere Indizes und Schlüssel:

Stellen Sie sicher, dass keine anderen Indizes oder Schlüssel in der Tabelle vorhanden sind, die zur Verletzung der maximalen Schlüssellänge beitragen könnten. Falls vorhanden, versuchen Sie, diese Indizes zu löschen oder zu ändern, um Platz im Indexbereich freizugeben.

Durch die Implementierung dieser Lösungen sollten Sie in der Lage sein, den Fehler „Eindeutiger Schlüssel zu lang“ zu beheben und das gewünschte eindeutige Element erfolgreich zu erstellen Index für Ihre Datenbanktabelle.

Das obige ist der detaillierte Inhalt vonWie kann der Fehler „Eindeutiger Schlüssel zu lang' bei Laravel-Migrationen behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn