A voir également:
- Trigger de gestion des stock.
- Logiciel gestion photo gratuit - Guide
- Logiciel gestion de stock pharmacie gratuit - Télécharger - Santé & Bien-être
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Logiciel gestion cave à vin gratuit excel - Télécharger - Cuisine & Gastronomie
- Logiciel gestion de stock et facturation - Télécharger - Comptabilité & Facturation
2 réponses
Aprés avoir pris en compte certaines corrections mon programme me renvoi l'erreur suivante lorsque j'essaye de rentrer une nouvelle ligne dans ma table t_order_product à savoir:
ERREUR: une instruction insert ou update sur la table "t_order_product" viole la contrainte de clé étrangère "product_idop"
DETAIL: La clé (product_id)= (2) n'est pas présente dans la table "t_product".
Voilà le trigger corrigé:
</code>
CREATE OR REPLACE FUNCTION gest_stock()
RETURNS trigger AS
$BODY$
declare stock varchar;
declare id_prod integer;
declare q integer;
begin
select into q new.quantity;
select into id_prod new.product_id;
update t_product
set stock_web = stock_web + q
where id_product=id_prod;
q :=0;
select into q old.quantity;
select into id_prod old.product_id;
update t_product
set stock_web = stock_web - q
where id_product=id_prod;
return null;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION gest_stock() OWNER TO postgres;</code>
Mais j'ai lu ici http://blog.guillaume.lelarge.info/inde ... g%C3%A8res , si j'ai bien compris, qu'il y avait un problème sous postgres avec des trigger qui désactivé les clés étrangères.
Est-ce que ce que je cherche à faire est impossible?
La version de postgreSQL que j'utilise: 8.4
Julien
ERREUR: une instruction insert ou update sur la table "t_order_product" viole la contrainte de clé étrangère "product_idop"
DETAIL: La clé (product_id)= (2) n'est pas présente dans la table "t_product".
Voilà le trigger corrigé:
</code>
CREATE OR REPLACE FUNCTION gest_stock()
RETURNS trigger AS
$BODY$
declare stock varchar;
declare id_prod integer;
declare q integer;
begin
select into q new.quantity;
select into id_prod new.product_id;
update t_product
set stock_web = stock_web + q
where id_product=id_prod;
q :=0;
select into q old.quantity;
select into id_prod old.product_id;
update t_product
set stock_web = stock_web - q
where id_product=id_prod;
return null;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION gest_stock() OWNER TO postgres;</code>
Mais j'ai lu ici http://blog.guillaume.lelarge.info/inde ... g%C3%A8res , si j'ai bien compris, qu'il y avait un problème sous postgres avec des trigger qui désactivé les clés étrangères.
Est-ce que ce que je cherche à faire est impossible?
La version de postgreSQL que j'utilise: 8.4
Julien