--=-oBHBbKH7LRABBtYlT3fR
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Hallo Liste ich habe folgendes Problem:
wenn ich ein ein insert mache wird insert-trigger (ich mache ein update)
aufgerufen.
dieses update wiederum müsste update-trigger(ich mach was andres)
aufrufen.
leider passiert nur step 1
führe ich jedoch ein händisches update foo.bar value 123 aus dann feuer=
t
update-trigger.
Bitte CC an mich, da ich nicht subscribed bin.
Vielen Dank
Daniel
CREATE OR REPLACE FUNCTION create_basnhex()
RETURNS "trigger" AS
'
BEGIN
IF TG_OP =3D ''INSERT'' THEN
UPDATE artbacn SET countanzahl =3D NEW.anzahl WHERE banr =3D
NEW.banr ;
END IF;
RETURN NEW;
END;
'
LANGUAGE 'plpgsql' VOLATILE;
CREATE OR REPLACE FUNCTION update_basnhex()
RETURNS "trigger" AS
'
BEGIN
IF TG_OP =3D ''UPDATE'' THEN
INSERT INTO basnhex (banr) VALUES (NEW.banr) ;
UPDATE artbacn SET countanzahl =3D NEW.countanzahl -1 WHERE banr =3D
NEW.banr AND OLD.countanzahl > 1;
END IF;
RETURN NEW;
END;
'
LANGUAGE 'plpgsql' VOLATILE;
DROP TRIGGER watch_artbacn ON artbacn;
CREATE TRIGGER watch_artbacn
AFTER INSERT
ON artbacn
FOR EACH ROW
EXECUTE PROCEDURE create_basnhex();
/*
CREATE or replace RULE copy_artbacn AS ON INSERT TO artbacn DO ( insert
into artbacn (countanzahl) SELECT anzahl FROM artbacn where countanzahl
IS NULL);
*/
DROP TRIGGER watch_artbacn2 ON artbacn;
CREATE TRIGGER watch_artbacn2
AFTER UPDATE ON artbacn
FOR EACH ROW
EXECUTE PROCEDURE update_basnhex();
dieses command feuert nur den ersten trigger
insert into artbacn (banr,articlenr,anzahl) values (20,1,900);
dieses command feurt wie gewünscht den zweiten trigger
update artbacn set anzahl =3D '800' where banr =3D '18'
--
Erst wenn der letzte Programmierer/Codebreaker eingesperrt...
....und die letzte Idee/Algorithm patentiert ist, werdet ihr merken, dass
Anwälte nicht programmieren können.
Daniel J. Priem
mail danielpriem [at] flexserv.de
http://flexserv.de
--=-oBHBbKH7LRABBtYlT3fR
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: Dies ist ein digital signierter Nachrichtenteil
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQBEEhciU9jdS3sZZnERAiGAAKCBI0xc3PYqLv0vtLS1DR19S+/YQACg g0FJ
4tzEFHrbvT34dmNVk1qG7bc=
=IBmy
-----END PGP SIGNATURE-----
--=-oBHBbKH7LRABBtYlT3fR--
