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:
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();
ma PROCEDURE :
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;
mes log(java) m'annoncent ceci :
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
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.
Merci.