Heim >Datenbank >MySQL-Tutorial >Laravel-Migrationsfehler: Wie behebt man „Die Länge des eindeutigen Schlüssels überschreitet das Limit'?
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!