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

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

Linda Hamilton
Libérer: 2024-11-30 00:29:09
original
835 Les gens l'ont consulté

How to Solve Laravel Migration Error: Unique Key Length Limit Exceeded?

Erreur de migration Laravel : limite de longueur de clé unique dépassée

Dans Laravel, lors de la création d'une migration pour ajouter une clé unique à une colonne avec un chaîne trop longue, vous pouvez rencontrer l'erreur suivante :

[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Copier après la connexion

Cette erreur peut souvent être résolue en spécifiant une longueur plus petite pour le colonne. La longueur par défaut d'une chaîne est de 250 caractères, ce qui devrait être suffisant pour la plupart des adresses e-mail et autres chaînes typiques.

Dans votre migration spécifique, vous avez défini la colonne e-mail comme une chaîne d'une longueur de 320. Essayez réduire cette longueur à 250 ou à la valeur par défaut :

Schema::create('users', function (Blueprint $table) {
    $table->string('email', 250); // or $table->string('email');
Copier après la connexion

Si vous rencontrez toujours l'erreur même après avoir ajusté la longueur de la colonne, vous pouvez essayer de définir une longueur de chaîne par défaut pour votre base de données. Dans Laravel 5.4 et versions ultérieures, vous pouvez y parvenir en ajoutant ce qui suit à votre fichier AppServiceProvider.php :

use Illuminate\Database\Schema\Builder;

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

Cela définira la longueur de chaîne par défaut à 191 caractères pour toutes les nouvelles colonnes créées lors des migrations.

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