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
Libérer: 2024-12-01 16:31:10
original
274 Les gens l'ont consulté

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);
Copier après la connexion

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

$table->string('email');
Copier après la connexion

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);
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal