Maison > développement back-end > tutoriel php > Comment corriger l'erreur « Clé unique trop longue » dans les migrations Laravel ?

Comment corriger l'erreur « Clé unique trop longue » dans les migrations Laravel ?

Linda Hamilton
Libérer: 2024-10-30 04:07:02
original
1000 Les gens l'ont consulté

How to Fix the

Migration Laravel : Dépannage de l'erreur « Clé unique trop longue »

L'erreur « Clé unique trop longue » dans les migrations Laravel se produit lorsqu'une erreur unique index tente d'utiliser une clé qui dépasse la longueur maximale autorisée. Cette erreur peut survenir lors de la définition d'un index unique sur une colonne avec un type de données volumineux, tel qu'une adresse e-mail.

Pour résoudre ce problème, envisagez les solutions suivantes :

1. Réduisez la longueur de la colonne :

Une approche consiste à spécifier une longueur plus courte pour la colonne en question. Par exemple, dans la migration fournie, la colonne email est définie avec une longueur de 320 caractères. Pour résoudre l'erreur, essayez de réduire cette longueur à 250 caractères, qui est la longueur par défaut d'une colonne d'e-mail.

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

Si vous utilisez Laravel 5.4, vous pouvez remplacer la longueur de chaîne par défaut en suivant les étapes suivantes :

  • Dans AppServiceProvider. php, ajoutez le code suivant dans la méthode boot() :
<code class="php">use Illuminate\Database\Schema\Builder;

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

Ce code définit la longueur de chaîne par défaut à 191 caractères, ce qui devrait être suffisant dans la plupart des cas.

3. Activer les grands incréments pour la clé primaire :

Si l'erreur persiste, vérifiez si la clé primaire de la table est définie sur l'incrémentation automatique (généralement définie par incréments('id')). Si tel est le cas, essayez de le convertir en un incrément automatique de « grand entier » (bigIncrements('id')) comme suit :

<code class="php">$table->bigIncrements('id');</code>
Copier après la connexion

Ce changement permet à la clé primaire d'accepter des valeurs plus grandes, libérant potentiellement certains espace dans l'index.

4. Vérifiez les autres index et clés :

Assurez-vous qu'il n'y a pas d'autres index ou clés sur la table qui pourraient contribuer à la violation de la longueur maximale de clé. S'il en existe, essayez de supprimer ou de modifier ces index pour libérer de l'espace dans la zone d'index.

En mettant en œuvre ces solutions, vous devriez être en mesure de résoudre l'erreur « clé unique trop longue » et de créer avec succès l'index unique souhaité. index sur votre table de base de données.

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