2016-10-28 7 views
1

PostgreSQL 테이블의 csv 파일에서 데이터를 자동으로 업데이트하는 방법을 찾으려고합니다.CSV 파일에서 PostgreSQL 테이블 업데이트

csv 파일에는 LabVIEW 테스트 데이터가 저장되어 있으며,이 데이터는 매 실행마다 갱신되며 로컬 컴퓨터에 저장됩니다.

  1. COPY 명령

    COPY test1 FROM 'C:\Users\..\Test.csv' DELIMITER E'\t' CSV; 
    
  2. 외부 데이터 래퍼 (file_fdw)

    :

    은 지금까지 나는 테이블에 CSV에서이 방법을 사용하여 'TEST1를'데이터를 가져올 수 있어요

    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 트리거 기능을 지원하지 않는 포럼 게시물에 읽은 사람 (9.6) PostgreSQL의 최신 버전에서 이것을 확인할 수 있습니까?

누구든지 외부 테이블이나 .csv 파일에서 테이블을 자동으로 업데이트하는 방법을 알고 있습니까?

답변

0

당신은

당신은 외국 테이블의 구체화 된 뷰를 만들 수 있습니다 .... 외국 테이블에 트리거를 추가하는 듯했지만 수 없습니다. 그런 다음 구체화 된 뷰에 트리거를 넣을 수 있습니다. 마지막으로 외부 스케줄러가 구체화 된보기를 (데이터와 동시에) 새로 고치면 트리거가 새 데이터를 시작해야합니다.