首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CSV文件中更新PostgreSQL表

问从CSV文件中更新PostgreSQL表
EN

Stack Overflow用户
提问于 2016-10-28 10:22:54
回答 1查看 2.2K关注 0票数 2

我正在设法从PostgreSQL表上的csv文件中自动更新数据。

csv文件保存LabVIEW测试数据,每次执行都会更新这些数据,并存储在本地计算机上。

到目前为止,我可以使用两个方法将数据从csv导入到表'test1‘中:

  1. 复制命令 从‘test1’定界符E'\t‘CSV复制C:\Users..\Test.csv;
  2. 外部数据包装器(file_fdw) 创建服务器labview外部数据包装器file_fdw;创建外部表labview_test ( column1文本)服务器labview选项(文件名‘C:\Users.\Test.csv’,格式'csv');

从这里,我可以将数据插入test1

代码语言:javascript
复制
    INSERT INTO test1 (column1) FROM labview_test;

这对于一个更新来说是可以的,但是我需要这个过程是自动化的。我尝试使用触发器和触发器函数,并且能够在外部表上创建触发器,但是当我运行新的LabVIEW测试时,表不会更新。

代码语言:javascript
复制
   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文件中自动更新表吗?

EN

回答 1

Stack Overflow用户

发布于 2016-11-13 18:04:14

你不能把扳机放在外桌上,但是.

可以创建外部表的物化视图。然后,可以在物化视图上设置一个触发器。最后,您可以使用外部调度程序刷新物化视图(与数据并发),这将导致触发器触发新数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40303069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档