1
我想找到一种方法来自动更新PostgreSQL表上的csv文件中的数据。从CSV文件更新PostgreSQL表
csv文件包含LabVIEW测试数据,它将在每次执行时更新并存储在本地计算机上。
到目前为止,我能够从CSV导入数据到表 '测试1' 通过两种方法:
COPY命令
COPY test1 FROM 'C:\Users\..\Test.csv' DELIMITER E'\t' CSV;
外国数据包装(file_fdw)
CREATE SERVER labview FOREIGN DATA WRAPPER file_fdw; CREATE FOREIGN TABLE labview_test ( column1 text ) SERVER labview OPTIONS (filename 'C:\Users\..\Test.csv', format 'csv');
从那里我可以插入数据到test1使用
INSERT INTO test1 (column1) FROM labview_test;
这是可以的单个更新,但我需要这个过程是自动化的。我尝试过使用触发器和触发函数,并且能够在外表上创建触发器,但是当我运行新的LabVIEW测试时,表不会更新。
CREATE FUNCTION copy_test()
RETURNS TRIGGER AS $$
BEGIN
INSERT INTO test1 VALUES (NEW.column1);
RETURN NULL;
END $$ LANGUAGE plpgsql;
CREATE TRIGGER copy_trigger
AFTER INSERT OR UPDATE ON labview_test
FOR EACH ROW
EXECUTE PROCEDURE copy_test();
我在论坛上发帖说file_fdw不支持触发功能看,任何人都可以证实这一点在PostgreSQL里(9.6)的最新版本?
有谁知道一种方法来自动从外表或从.csv文件直接自动更新表?