PostgreSQL テーブルの csv ファイルからデータを自動的に更新する方法を見つけようとしています。
csv ファイルには LabVIEW テスト データが含まれており、実行ごとに更新され、ローカル コンピュータに保存されます。
これまでのところ、2 つの方法を使用して csv からテーブル 'test1' にデータをインポートできます。
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;
これは 1 回の更新では問題ありませんが、このプロセスを自動化する必要があります。トリガとトリガ関数を使用してみましたが、外部テーブルにトリガを作成できましたが、新しい 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 ファイルから直接テーブルを自動的に更新する方法を知っている人はいますか?