Lists: | pgsql-fr-generale |
---|
From: | BPascal <pascal62fr(at)free(dot)fr> |
---|---|
To: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | En cas d'update réaliser un insert dans une autre table |
Date: | 2008-12-12 09:26:57 |
Message-ID: | 49422E61.3010305@free.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | Postg배트맨 토토SQL : Postg배트맨 |
Bonjour,
Comment faire, en cas d'update dans une table via PHP, pour réaliser un
insert automatiquement dans une autre table via postgresql.
C'est une question qui doit fréquente, je cherche dans la documentation,
trigger/postgresql je suppose.
Si vous connaissez une documentation, un exemple, ...
Comme ma question est assez général je donne un exemple simplifié
Soit la table Etablissement, quand Etablissement.Nom change alors je
renseigne date.maj et je veux créer un enregistrement dans Historique
Table Etablissement
IdEtablissement
Nom
Date_maj
Table Historique
Idhistorique
IdEtablissement
Nom
Date_historique
Je peux le faire en PHP, mais je souhaite faire faire ce travail par
postgresql. Je suppose que c'est possible via "trigger" mais je n'ai
jamais utilisé ce genre de chose.
Je cherche un exemple simple à imiter.
A+
--
Pascal
From: | Marc Cousin <mcousin(at)sigma(dot)fr> |
---|---|
To: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: En cas d'update réaliser un insert dans une autre table |
Date: | 2008-12-12 09:47:37 |
Message-ID: | 200812121047.37849.mcousin@sigma.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | Postg토토 사이트SQL : Postg토토 |
Le Friday 12 December 2008 10:26:57 BPascal, vous avez écrit :
> Bonjour,
>
>
> Comment faire, en cas d'update dans une table via PHP, pour réaliser un
> insert automatiquement dans une autre table via postgresql.
>
> C'est une question qui doit fréquente, je cherche dans la documentation,
> trigger/postgresql je suppose.
>
> Si vous connaissez une documentation, un exemple, ...
>
>
> Comme ma question est assez général je donne un exemple simplifié
>
> Soit la table Etablissement, quand Etablissement.Nom change alors je
> renseigne date.maj et je veux créer un enregistrement dans Historique
>
> Table Etablissement
> IdEtablissement
> Nom
> Date_maj
>
>
>
> Table Historique
> Idhistorique
> IdEtablissement
> Nom
> Date_historique
>
>
> Je peux le faire en PHP, mais je souhaite faire faire ce travail par
> postgresql. Je suppose que c'est possible via "trigger" mais je n'ai
> jamais utilisé ce genre de chose.
> Je cherche un exemple simple à imiter.
>
> A+
> --
> Pascal
Pour commencer, dans la doc postgresql, ce qui concerne la question, c'est les
chapitres 35 et 38 (si tu veux faire ton trigger en plpgsql, ce qui me semble
un bon début).
Sinon j'ai un exemple quick n dirty pour te mettre le pied à l'étrier (c'est
un trigger sur insertion, pas sur update, mais cela revient à peu de choses
près au même):
Creation de la fonction:
CREATE OR REPLACE FUNCTION logs_stat_virus()
RETURNS trigger AS
$BODY$BEGIN
if new.evenement = 'V' THEN
insert into stat_virus VALUES (new.date, new.info_sup);
END IF;
if new.evenement = 'A' THEN
insert into stat_spam VALUES (new.date);
END IF;
return new;
END$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
Declaration du trigger :
CREATE TRIGGER trigger_virus
BEFORE INSERT
ON logs
FOR EACH ROW
EXECUTE PROCEDURE logs_stat_virus();
From: | stephane <stephane+pgfr(at)bpf(dot)st> |
---|---|
To: | BPascal <pascal62fr(at)free(dot)fr> |
Cc: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: En cas d'update réaliser un insert dans une autre table |
Date: | 2008-12-12 13:13:49 |
Message-ID: | 20081212141349.62c63adc@Lutetium |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-fr-generale |
Le Fri, 12 Dec 2008 10:26:57 +0100,
BPascal <pascal62fr(at)free(dot)fr> a écrit :
> Bonjour,
>
>
> Comment faire, en cas d'update dans une table via PHP, pour réaliser
> un insert automatiquement dans une autre table via postgresql.
>
> C'est une question qui doit fréquente, je cherche dans la
> documentation, trigger/postgresql je suppose.
>
> Si vous connaissez une documentation, un exemple, ...
>
Un petit exemple:
http://stephane.bpf.st/si/bdd/pg/lastupdate
(...)
Stéphane.
From: | Dimitri Fontaine <dfontaine(at)hi-media(dot)com> |
---|---|
To: | BPascal <pascal62fr(at)free(dot)fr> |
Cc: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: En cas d'update réaliser un insert dans une autre table |
Date: | 2008-12-12 13:38:28 |
Message-ID: | 9B32659C-B25A-4385-A4EC-17D6D53F109D@hi-media.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-fr-generale |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Le 12 déc. 08 à 10:26, BPascal a écrit :
> Comment faire, en cas d'update dans une table via PHP, pour réaliser
> un insert automatiquement dans une autre table via postgresql.
Regarde le projet tablelog :
http://pgfoundry.org/projects/tablelog/
- --
dim
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)
iEYEARECAAYFAklCaVUACgkQlBXRlnbh1bmTswCgmcyaBwq5Cp40Fpp+Td8wErWZ
oQsAnAuWFXwtNfD2hBEN4rLCOBP8oB8G
=k54H
-----END PGP SIGNATURE-----