PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Général » Lancer une query a chaque INSERT/UPDATE/DELETE sur certaines tables » 12/08/2019 15:28:40

Merci pour vos réponses

Il y a un autre champs que je dois mettre à jour pour l'UPDATE, donc je suppose que je dois effectivement faire chaque Trigger

#2 Général » Lancer une query a chaque INSERT/UPDATE/DELETE sur certaines tables » 12/08/2019 11:32:31

Firlfire
Réponses : 4

Bonjour,

J'ai plusieurs tables dans ma DB. L'une d'elle contient un champ qui doit être mis à jour chaque fois qu'une query / transaction / tache est faites sur certaines tables.

Par exemple ci-dessous SubOne et SubTwo référencent Main.
Chaque fois qu'une action (INSERT, UPDATE ou DELETE) est fait sur une de ces trois tables (pas sur la table Other) j'ai besoin de lancer cette query :

update Main set contactedat=CURRENT_TIMESTAMP where mainId= /* mainId des data modifiées*/

Est-ce que je suis obligé de définir ces 3 triggers pour chaque table concernée ou y a-t-il un moyen plus simple ?

Merci d'avance!

CREATE TABLE Main (
  mainId serial PRIMARY KEY NOT NULL,
  contactedAt timestamp with time zone NOT NULL DEFAULT CURRENT_DATE,
  name text NOT NULL
);

CREATE TABLE SubOne (
  subOneId serial PRIMARY KEY NOT NULL,
  mainId integer NOT NULL REFERENCES Main(mainId),
  subOneName text DEFAULT null
);

CREATE TABLE SubTwo (
  SubTwoId serial PRIMARY KEY NOT NULL,
  mainId integer NOT NULL REFERENCES Main(mainId),
  subOneName text DEFAULT null
);

CREATE TABLE Other (
  otherId serial PRIMARY KEY NOT NULL,
  name varchar(60) NOT NULL
);

Pied de page des forums

Propulsé par FluxBB