【问题标题】:Creating procedures in phpPgadmin在 phpPgadmin 中创建程序
【发布时间】:2014-12-11 11:58:28
【问题描述】:

我想创建一个过程(用于在更新时将一个表(mover_location)的值复制到另一个表(mover_history),并且想在 postgresql 中使用 phppgadmin 的触发器上调用它。

这是我尝试过的:

程序:-

     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
        ^

【问题讨论】:

    标签: postgresql stored-procedures triggers phppgadmin


    【解决方案1】:

    你创建的过程不正确,例如

    CREATE OR REPLACE FUNCTION procedure_name()
    RETURNS trigger AS
    $BODY$
    BEGIN
    /*----logic----*/
    END
    $BODY$
    LANGUAGE plpgsql 
    

    【讨论】:

    • 现在错误落在 SELECT 上,因为 ERROR: syntax error at or near "SELECT" LINE 6: VALUES(SELECT mover_location.reg_id,mover_location.last_seen... ^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多