Laravel-Migrationsfehler: Längenbeschränkung für eindeutigen Schlüssel überschritten
In Laravel beim Erstellen einer Migration zum Hinzufügen eines eindeutigen Schlüssels zu einer Spalte mit einem Wenn Sie eine zu lange Zeichenfolge verwenden, tritt möglicherweise der folgende Fehler auf:
[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Dieser Fehler kann häufig durch die Angabe einer kleineren Länge für behoben werden die Spalte. Die Standardlänge für eine Zeichenfolge beträgt 250 Zeichen, was für die meisten E-Mail-Adressen und andere typische Zeichenfolgen ausreichend sein sollte.
In Ihrer spezifischen Migration haben Sie die E-Mail-Spalte als Zeichenfolge mit einer Länge von 320 definiert. Versuchen Sie es Reduzieren Sie diese Länge auf 250 oder den Standardwert:
Schema::create('users', function (Blueprint $table) { $table->string('email', 250); // or $table->string('email');
Wenn der Fehler auch nach dem Anpassen der Spaltenlänge immer noch auftritt, können Sie versuchen, eine Standardzeichenfolgenlänge für Ihre Spalte festzulegen Datenbank. In Laravel 5.4 und höher können Sie dies erreichen, indem Sie Folgendes zu Ihrer AppServiceProvider.php-Datei hinzufügen:
use Illuminate\Database\Schema\Builder; public function boot() { Builder::defaultStringLength(191); }
Dadurch wird die Standardzeichenfolgenlänge für alle neuen Spalten, die in Migrationen erstellt werden, auf 191 Zeichen festgelegt.
Das obige ist der detaillierte Inhalt vonSo beheben Sie den Laravel-Migrationsfehler: Längenbeschränkung für eindeutige Schlüssel überschritten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!