0
votes

Laravel sqlstate [HY000]: erreur générale: 1364 champ 'id' n'a pas de valeur par défaut

Je travaille sur une application Laravel pendant un moment maintenant, mais lorsque je cours PHP Artisan migrer code> maintenant, tout de suite, je reçois toujours l'erreur suivante:

public function up()
{
    Schema::create('departments', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('company_id');
        $table->string('name');
        $table->string('p_number')->nullable();
        $table->string('address')->nullable();
        $table->string('zipcode')->nullable();
        $table->string('city')->nullable();
        $table->string('contact_name')->nullable();
        $table->string('contact_email')->nullable();
        $table->string('contact_phone')->nullable();

        $table->timestamps();
    });
}


9 commentaires

Avez-vous créé une table des migrations vous-même?


S'il vous plaît montrez-nous le code de cette migration.


@Magnuseriksson S'il vous plaît vérifier ma question mise à jour :-) De toute façon, c'est sur toutes les migrations ...


@Drakulaprader NO et c'est la partie étrange ...


D'accord avec @Drakulapredator. @ ST80 Pouvez-vous montrer le résultat de Afficher les colonnes des migrations ; ?


@ marv255 Veuillez vérifier ma question mise à jour ...


Pouvez-vous tirer expliquer les migrations et voir s'il est défini sur AutoIncrement ou non


Ce problème a provoqué si vous mettez à niveau Laravel de 5.2 à la version actuelle, donc pour la solution Solution de Solution Edition de la colonne ID dans la table de migration et définissez-la "Incrément automatique"


Vous manquez d'incrémenter automatiquement dans la table des migrations


3 Réponses :


4
votes

feu cette requête devrait fonctionner pour AutoIncrement, c'est la raison de la valeur de l'ID ne reçoit pas d'auto-incrémentation automatique

SET @new_index = (SELECT MAX(id) FROM migrations );
SET @sql = CONCAT('ALTER TABLE migrations AUTO_INCREMENT = ', @new_index);
PREPARE st FROM @sql;
EXECUTE st;


7 commentaires

Je reçois l'erreur: 1062 - Alter Table provoque la reséquence automatique_incrimentation, ce qui entraîne une entrée en double '1' pour la clé "primaire"


Vous pouvez obtenir de l'aide avec ce problème spécifique de ici . Mais je suis sûr que votre problème est avec AutoIncrement.


Avez-vous vérifié si la colonne ID a 0 valeurs?


Hmm oui, la première entrée a ID = 0


@ St80 vérifier ma réponse maintenant


@ ST80 fait que mes changements vous ont aidé à résoudre votre problème?


Oui, votre réponse est similaire avec celle que j'ai trouvée ici . Donc, je vais l'accepter .-)



0
votes

Après beaucoup de recherches et de bonnes réponses, j'ai trouvé cette solution, qui l'a résolu pour moi: xxx

La solution est basée sur Cette Répondez d'une question similaire - grâce à @ Dracula Predator pour le bon indice.


0 commentaires

-1
votes

Vous avez reçu cette erreur car vous avez probablement une table de migrations modifiée. Vous pouvez essayer peu d'options

  1. Exécuter PHP Artisan Migrate: Fresh Command
  2. Drop TOUTES TABLES ET REERR TOUTE MIGRATION

1 commentaires

Comme vous pouvez le lire dans la question, les erreurs d'erreur lors de l'insertion de quelque chose dans la table des migrations qui (normalement et dans ce cas) n'est pas affectée par les scripts de migration. Donc, votre solution n'est pas utile.