Maison >base de données >tutoriel mysql >Comment corriger l'erreur de migration de Laravel : longueur de clé unique dépassée ?

Comment corriger l'erreur de migration de Laravel : longueur de clé unique dépassée ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-01 16:31:10353parcourir

How to Fix Laravel Migration Error: Unique Key Length Exceeded?

Dépannage de l'erreur de migration de Laravel : longueur de clé unique dépassée

Lorsque vous essayez de créer une clé unique pour une colonne de courrier électronique dans Laravel, vous pouvez rencontrer l'erreur suivante :

[IlluminateDatabaseQueryException] SQLSTATE[42000] : erreur de syntaxe ou violation d'accès : 1071 La clé spécifiée était trop longue ; la longueur maximale de la clé est de 767 octets

Bien que vous ayez spécifié la clé d'index comme deuxième paramètre de la méthode unique(), l'erreur persiste. Cela est probablement dû à la longueur de la colonne email.

Solution pour les versions de Laravel antérieures à 5.4 :

Pour résoudre cette erreur, réduisez la longueur de la colonne email. . La longueur par défaut est de 250 caractères, modifiez donc la ligne suivante dans votre migration :

$table->string('email', 250);

Alternativement, vous pouvez utiliser la longueur par défaut :

$table->string('email');

Solution pour Laravel 5.4 et ci-dessus :

Dans Laravel 5.4, vous pouvez définir une longueur de chaîne par défaut pour éviter cela erreur. Dans votre fichier AppServiceProvider.php, ajoutez le code suivant à la méthode de démarrage :

use Illuminate\Database\Schema\Builder;

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

Cela garantira que toutes les colonnes de chaîne utilisent une longueur maximale de 191 caractères.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn