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

Requêtes PostgreSQL Discussion :

RULES pour on duplicate key renvoit des résultats bizarres


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 73

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Points : 126
    Points
    126
    Par défaut RULES pour on duplicate key renvoit des résultats bizarres
    Bonjour,
    Si quelqu'un peur m'aider, j'ai le script suivant qui me renvoit un résultat bizarre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     
    DROP RULE if exists OnDupKeytmpInventairescanpal ON tmpInventairescanpal;
    drop  table if exists tmpInventairescanpal;
     
    CREATE   TABLE tmpInventairescanpal (
      pointeurarticle INTEGER DEFAULT 0,
      qt INTEGER DEFAULT NULL,
      CONSTRAINT "pointeurarticle" PRIMARY KEY("pointeurarticle")
    );
     
     
     
    CREATE RULE OnDupKeytmpInventairescanpal AS ON INSERT TO tmpInventairescanpal
    WHERE (new.pointeurarticle  IN ( SELECT tmpInventairescanpal.pointeurarticle
               FROM tmpInventairescanpal ))
     
    DO INSTEAD (
    UPDATE tmpInventairescanpal SET
     
    qt=qt+NEW.qt
       WHERE pointeurarticle = new.pointeurarticle
     
    );
     
     
    insert into tmpInventairescanpal
    (qt,pointeurarticle) values(1,1);
    insert into tmpInventairescanpal
    (qt,pointeurarticle) values(2,1);
    select * from tmpInventairescanpal;
    J'obtiens le résultat suivant


    pointeurarticle=1
    qt=4
    **

    Si ensuite j'exécute la requete suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
     
    insert into tmpInventairescanpal
    (qt,pointeurarticle) values(1,1);
    insert into tmpInventairescanpal
    (qt,pointeurarticle) values(2,1);
    select * from tmpInventairescanpal;

    J'obtiens le résultat suivant


    pointeurarticle=1
    qt=7
    ce qui est normal.

    Merci de votre aide.
    MS

  2. #2
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 73

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Points : 126
    Points
    126
    Par défaut
    Il semble que ce soit un bug connu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. requête avec jointure qui renvoie des résultats bizarres
    Par Canari74 dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 20/05/2008, 02h13
  2. Réponses: 2
    Dernier message: 20/04/2007, 13h48
  3. Réponses: 2
    Dernier message: 21/05/2006, 14h02
  4. Requete SQL probleme pour soustraire des résultats
    Par eljeje dans le forum Requêtes
    Réponses: 4
    Dernier message: 13/04/2006, 10h34
  5. Réponses: 3
    Dernier message: 15/03/2004, 00h55

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