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