IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Doctrine2 PHP Discussion :

Valeur automatique pour ID défaillante


Sujet :

Doctrine2 PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut Valeur automatique pour ID défaillante
    Bonjour,

    J'ai une table définie avec une génération en mode automatique pour ma clef primaire, id.

    Le code associé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    JaiUneIdee\SiteBundle\Entity\AlerteIdee:
      type: entity
      repositoryClass: JaiUneIdee\SiteBundle\Repository\AlerteIdeeRepository
      table: alerte_idee
      fields:
        id:
          type: integer
          id: true
          generator:
            strategy: AUTO
     
    ....
    Ma base de donnée est sous postgres, qui gère normalement l'incrémentation à l'aide de séquence.
    Depuis symfony, tout va bien.
    Mais aujourd'hui, j'ai essayé d'ajouter des valeurs manuellement dans la base de données à l'aide d'une commande INSERT basique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    INSERT INTO alerte_idee(id, idee_id, user_id) VALUES
    (18,15,7),
    (19,15,10),
    (20,15,11),
    (21,15,16),
    (22,15,17)
    La commande s'exécute bien, mais doctrine ne comprend pas que j'ai inséré ces lignes, et essaye de regénérer l'id 18... qui existe déjà. J'obtiens alors une erreur SQL de violantion de contrainte unique.

    Si j'omets de spécifier l'id dans la requete, comme suis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    INSERT INTO alerte_idee(idee_id, user_id) VALUES
    (15,7),
    (15,10),
    (15,11),
    (15,16),
    (15,17),
    J'ai alors une violation de contrainte not null sur ma clef primaire id.

    Sauriez-vous comment résoudre ce problème ?
    Merci,
    Pierre

  2. #2
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    Bonjour,

    j'ai regardé un peu plus la doc et normalement, la requete quivante devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INSERT INTO alerte_idee(id, idee_id, user_id) VALUES
    (default,27,2)
    Sauf que je récupère une erreur

    ERREUR: une valeur NULL viole la contrainte NOT NULL de la colonne « id »
    État SQL :23502
    Détail :La ligne en échec contient (null, 27, 2, t, 2013-09-14 17:08:46)
    Vous en pensez-quoi ?
    Il semble que els séquences soit générées, mais pas utilisées correctement par doctrine. Je me demande alors un peu comment doctrine insère des valeur dans les tables en choisissant le bon id...

    C'est vraiment bizarre tout ça...

  3. #3
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    Bonjour,

    J'ai toujours mon problème...

    Donc je peux bien sur créer une commande pour générer une fois les entité par doctrine(j'en ai une centaine) manuellement, mais ca me parait bizarre qu'on ne puisse pas insérer de valeur dans la BDD manuellement en requête SQL sans casser doctrine.

    Vous avez un avis ?

Discussions similaires

  1. [XL-2013] Changer valeur inscrite automatiquement pour mise en forme conditionnelle dans planning
    Par a02halo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/05/2015, 15h26
  2. Valeur mini pour un Champs avec un bouton + et un - a coté
    Par budiste dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 01/12/2005, 14h09
  3. Reinitialisation valeur automatique
    Par manu47 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 19/09/2005, 09h13
  4. Aucune valeur donnée pour ...
    Par Gathe dans le forum ASP
    Réponses: 15
    Dernier message: 06/12/2004, 17h24
  5. Réponses: 9
    Dernier message: 10/08/2004, 17h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo