Heim >Datenbank >MySQL-Tutorial >Wie behebt man einen Laravel-Migrationsfehler: Die Länge des eindeutigen Schlüssels wurde überschritten?
Fehlerbehebung beim Laravel-Migrationsfehler: Länge des eindeutigen Schlüssels überschritten
Beim Versuch, einen eindeutigen Schlüssel für eine E-Mail-Spalte in Laravel zu erstellen, kann Folgendes auftreten: der folgende Fehler:
[IlluminateDatabaseQueryException] SQLSTATE[42000]: Syntaxfehler oder Zugriffsverletzung: 1071 Der angegebene Schlüssel war zu lang; Die maximale Schlüssellänge beträgt 767 Bytes
Obwohl Sie den Indexschlüssel als zweiten Parameter für die Methode unique() angegeben haben, bleibt der Fehler bestehen. Dies liegt wahrscheinlich an der Länge der E-Mail-Spalte.
Lösung für Laravel-Versionen vor 5.4:
Um diesen Fehler zu beheben, reduzieren Sie die Länge der E-Mail-Spalte . Die Standardlänge beträgt 250 Zeichen, also ändern Sie die folgende Zeile in Ihrer Migration:
$table->string('email', 250);
Alternativ können Sie die Standardlänge verwenden:
$table->string('email');
Lösung für Laravel 5.4 und höher:
In Laravel 5.4 können Sie eine Standard-String-Länge festlegen, um dies zu vermeiden Fehler. Fügen Sie in Ihrer AppServiceProvider.php-Datei den folgenden Code zur Startmethode hinzu:
use Illuminate\Database\Schema\Builder; public function boot() { Builder::defaultStringLength(191); }
Dadurch wird sichergestellt, dass alle Zeichenfolgenspalten eine maximale Länge von 191 Zeichen verwenden.
Das obige ist der detaillierte Inhalt vonWie behebt man einen Laravel-Migrationsfehler: Die Länge des eindeutigen Schlüssels wurde überschritten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!