1

プロシージャを作成し(更新時にあるテーブル()の値mover_locationを別のテーブル(mover_history)にコピーするため)、phppgadminを使用してpostgresqlのトリガーでそれを呼び出したいです。

これが私が試したことです:

手順 :-

     CREATE OR REPLACE FUNCTION log_mover_location()
     RETURNS trigger AS

    BEGIN

    INSERT INTO mover_history(reg_id,last_seen_lat,last_seen_long,last_seen_location_geog,last_updated_at)
    VALUES(SELECT 

    mover_location.reg_id,mover_location.last_seen_lat,mover_location.last_seen_long,mover_location.last_seen_location_geog,mover_location.last_updated_at FROM mover_location) WHERE mover_history.reg_id = 

    @mover_location.reg_id;

    END;

引き金 :-

CREATE TRIGGER update_mover_history
  AFTER UPDATE
  ON mover_location
  FOR EACH ROW
  EXECUTE PROCEDURE log_mover_location();

トリガーが正常に作成されました ,

しかし、プロシージャを実行すると、次のようなエラーが発生します。

ERROR:  syntax error at or near "BEGIN"
LINE 4: BEGIN
        ^
4

1 に答える 1

0

作成した手順が正しくありません。たとえば、

CREATE OR REPLACE FUNCTION procedure_name()
RETURNS trigger AS
$BODY$
BEGIN
/*----logic----*/
END
$BODY$
LANGUAGE plpgsql 
于 2014-12-11T12:08:12.700 に答える