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文件直接自動更新表?