Bonjour, jessaie de faire un trigger vaec une procédure, j'ai une table worker avec un id en bigserial, j'aimerais le recupérer à chaque nouvelle insertion et l'insérer dans une autre table (abonnements)
mon TRIGGER:
ma PROCEDURE :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TRIGGER worker_ins AFTER INSERT ON worker FOR EACH ROW EXECUTE PROCEDURE insert_worker();
mes log(java) m'annoncent ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE OR REPLACE FUNCTION insert_worker() RETURNS trigger AS $BODY$ begin insert into abonnements (id_user) values (new.id); return new; end $BODY$ LANGUAGE plpgsql VOLATILE COST 100;
et l'insertion qui devait déclenché le trigger ne se fait pas non plus, ce que je trouve bizarre car pour moi AFTER c'est aprés insertion.org.postgresql.util.PSQLException: ERROR: insert or update on table "abonnements" violates foreign key constraint "fk_users"
Détail*: Key (id_user)=(37) is not present in table "users".
Où*: SQL statement "insert into abonnements (id_user) values (new.id)"
PL/pgSQL function insert_worker() line 3 at SQL statement
Merci.
Partager