Maison > base de données > tutoriel mysql > Erreur de migration Laravel : comment corriger « La longueur de la clé unique dépasse la limite » ?

Erreur de migration Laravel : comment corriger « La longueur de la clé unique dépasse la limite » ?

Susan Sarandon
Libérer: 2024-12-05 17:52:11
original
893 Les gens l'ont consulté

Laravel Migration Error: How to Fix

Erreur de migration Laravel : la longueur de la clé unique dépasse la limite

Lors de la tentative de migration d'une table d'utilisateurs dans Laravel à l'aide d'une migration, les développeurs peuvent rencontrer le erreur : "[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 767 octets." Cette erreur se produit généralement lorsque la clé unique spécifiée est plus longue que la longueur maximale autorisée.

Énoncé du problème

La migration fournie tente de créer une table d'utilisateurs avec une clé unique dans la colonne email. Cependant, la colonne e-mail est spécifiée pour avoir une longueur de 320 caractères, dépassant la limite de longueur maximale.

Solution

1. Réduire la longueur de la colonne d'e-mail

Réduisez la longueur de la colonne d'e-mail à une valeur plus petite, telle que 250 ou la valeur par défaut de 191 caractères. Ajustez la migration comme suit :

Schema::create('users', function(Blueprint $table)
{
    // ...

    $table->string('email', 250); // Update the email column length

    // ...
});
Copier après la connexion

2. Définir la longueur de chaîne par défaut (Laravel 5.4)

Si vous utilisez Laravel 5.4 ou une version ultérieure, vous pouvez définir une longueur de chaîne par défaut dans la méthode de démarrage du fichier AppServiceProvider.php :

public function boot()
{
    Builder::defaultStringLength(191);
}
Copier après la connexion

Cela définira une longueur par défaut de 191 caractères pour toutes les colonnes de chaînes créées lors des migrations, garantissant que les clés uniques ne dépassent pas la longueur autorisée. longueur.

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