postgresql - 在 phpPgadmin 中创建程序

标签 postgresql stored-procedures triggers phppgadmin

我想创建一个过程(用于在更新时将一个表 (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
        ^

最佳答案

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

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

关于postgresql - 在 phpPgadmin 中创建程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27422333/

相关文章:

postgresql - 将数据从 S3 加载到 PostgreSQL RDS

postgresql - Scala Slick 组合列类型映射器

mysql - 存储过程未按预期更新表

sql - 从另一个存储过程调用存储过程 SQL Server

mysql - MySql 版本 5.1.47 中的过程和多个查询

sql - 在 Oracle 中保持表同步

postgresql - 无法安装 pgmodeler

PostgreSQL:快速检查 LTREE [] <@ LTREE[] 的所有元素是否

mysql - 如何在向数据库添加新表后运行触发器

mysql - 如何在 MySQL 上使用唯一的字符序列生成触发器?