PostgreSQL a vykovani triggeru
Pavel Stehule
stehule na kix.fsv.cvut.cz
Pondělí Duben 11 15:18:21 CEST 2005
Zkuste 8.0.x. Jednak jsem tam narazil na zmeny v poradi vykonavani
triggeru, jednak jsem si zkusil foo sample, a rekl bych, ze to je to co
potrebujete
CREATE TABLE a(x integer);
CREATE OR REPLACE FUNCTION fx() RETURNS TRIGGER AS $$
BEGIN
RAISE NOTICE 'fx';
END; $$ LANGUAGE plpgsql;
Create Trigger fxa AFTER INSERT ON a EXECUTE PROCEDURE fx();
CREATE OR REPLACE FUNCTION fx2() RETURNS void AS $$
BEGIN
RAISE NOTICE '1';
INSERT INTO a VALUES(10);
RAISE NOTICE '2';
END; $$ LANGUAGE plpgsql;
SELECT fx2();
test=# SELECT fx2();
NOTICE: 1
NOTICE: fx
CONTEXT: SQL statement "INSERT INTO a VALUES(10)"
PL/pgSQL function "fx2" line 3 at SQL statement
ERROR: control reached end of trigger procedure without RETURN
CONTEXT: PL/pgSQL function "fx"
SQL statement "INSERT INTO a VALUES(10)"
PL/pgSQL function "fx2" line 3 at SQL statement
Zdravim
Pavel Stehule
Další informace o konferenci Test