Heim >Datenbank >MySQL-Tutorial >Laravel-Migrationsfehler: Wie behebt man „Die Länge des eindeutigen Schlüssels überschreitet das Limit'?

Laravel-Migrationsfehler: Wie behebt man „Die Länge des eindeutigen Schlüssels überschreitet das Limit'?

Susan Sarandon
Susan SarandonOriginal
2024-12-05 17:52:11895Durchsuche

Laravel Migration Error: How to Fix

Laravel-Migrationsfehler: Eindeutige Schlüssellänge überschreitet Grenzwert

Beim Versuch, eine Benutzertabelle in Laravel mithilfe einer Migration zu migrieren, können Entwickler auf Folgendes stoßen: Fehler: „[SQLSTATE[42000]: Syntaxfehler oder Zugriffsverletzung: 1071 Der angegebene Schlüssel war zu lang; die maximale Schlüssellänge beträgt 767 Bytes.“ Dieser Fehler tritt normalerweise auf, wenn der angegebene eindeutige Schlüssel länger als die maximal zulässige Länge ist.

Problembeschreibung

Die bereitgestellte Migration versucht, eine Benutzertabelle mit einem eindeutigen Schlüssel zu erstellen in der E-Mail-Spalte. Allerdings ist für die E-Mail-Spalte eine Länge von 320 Zeichen angegeben, was die maximale Längenbeschränkung überschreitet.

Lösung

1. Länge der E-Mail-Spalte reduzieren

Reduzieren Sie die Länge der E-Mail-Spalte auf einen kleineren Wert, z. B. 250 oder den Standardwert von 191 Zeichen. Passen Sie die Migration wie folgt an:

Schema::create('users', function(Blueprint $table)
{
    // ...

    $table->string('email', 250); // Update the email column length

    // ...
});

2. Standard-Stringlänge festlegen (Laravel 5.4)

Wenn Sie Laravel 5.4 oder höher verwenden, können Sie in der Boot-Methode der AppServiceProvider.php-Datei eine Standard-Stringlänge festlegen:

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

Dadurch wird eine Standardlänge von 191 Zeichen für alle in Migrationen erstellten Zeichenfolgenspalten festgelegt, um sicherzustellen, dass eindeutige Schlüssel den zulässigen Wert nicht überschreiten Länge.

Das obige ist der detaillierte Inhalt vonLaravel-Migrationsfehler: Wie behebt man „Die Länge des eindeutigen Schlüssels überschreitet das Limit'?. 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