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