PostgreSQL触发器和存储过程没有踢

时间:2011-04-07 09:42:06

标签: postgresql stored-procedures triggers plpgsql

我的目标是在更新发生在我的表格中的一行之前计算并保留某个值。

我创建了触发器和函数,我没有得到任何错误,但函数似乎没有被踢。我在哪里错了?

程序

CREATE or REPLACE FUNCTION foo() returns trigger as
  $BODY$
  DECLARE
  BEGIN
    NEW.geomtry := st_transform(st_pointfromtext('POINT(' || NEW.af_lon || ' ' || NEW.af_lat || ')', 4326), 32643);
    return NEW;
  END;
  $BODY$
language plpgsql;

在更新发生之前触发方法的触发器

CREATE TRIGGER foo_trigger BEFORE UPDATE ON foo_table FOR EACH ROW EXECUTE PROCEDURE foo();

1 个答案:

答案 0 :(得分:1)

您在存储过程中拼错了“几何体”。确保在表格和存储过程中拼写一致。