创建一个函数,在PostgreSQL中将列从一个表插入另一个表

时间:2016-07-20 13:11:51

标签: database postgresql

我有GPS数据存储在Vectronic的GPS PLUS X的默认存储中。在GPS PLUS X中我可以复制我的PostgreSQL数据库(存储在表public.gps_plus_positions中)。从这个表中我想用函数提取某些列,并在每次更新public.gps_plus_positions时自动插入另一个表。

因此,我运行以下代码(对于只提取一列的简单情况):

CREATE TABLE main.gps_test(
utc_date date)

CREATE OR REPLACE FUNCTION tools.gps_plus_positions2gps_test()
RETURNS trigger AS
$BODY$ begin
INSERT INTO main.gps_test(utc_date)
 SELECT 
    NEW.utc_date
;
RETURN NULL;
END
$BODY$
LANGUAGE plpgsql VOLATILE;
COMMENT ON FUNCTION tools.gps_plus_positions2gps_test()
IS 'Automatic upload data from gps_data to gps_test.';

CREATE TRIGGER trigger_gps_data_upload2test
  AFTER INSERT
  ON public.gps_plus_positions
  FOR EACH ROW
  EXECUTE PROCEDURE tools.gps_plus_positions2gps_test();
COMMENT ON TRIGGER trigger_gps_data_upload2test ON public.gps_plus_positions
IS 'Automatic upload data from gps_plus positions to gps_test.';

但是一旦我运行该代码,就不再执行将数据从GPS PLUS X中的默认存储复制到PostgreSQL模块。因此,我认为我的代码中存在错误。

我非常感谢有任何解决此问题的建议。

干杯!

1 个答案:

答案 0 :(得分:0)

解决。查看log_files解释了什么是错的。与Vectronic GPS PLUS X软件连接没问题。