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