0

私は一連の SQL コマンドを実行していますが、そのうちの 1 つは SQL の結果をファイルにコピーしたものです。次に、テーブルを削除します。次に例を示します。

psql - d dw -U postgres -f input.sql

input.sql の内容 ----------

CREATE TABLE a_temp AS
SELECT a.*
    FROM a

COPY dw.a_temp to '/opt/data/a/a.csv (delimiter E'\x01');

DROP table a_temp;

これはすべて1つのファイルで実行できますか? 現在、スクリプトは CREATE TABLE の後で停止するだけで、コピーは実行されません。PSQL 実行可能ファイルの複数回の呼び出しを回避しようとしています。

4

2 に答える 2

0

postgresql のバージョンは何ですか? それ以降のバージョンでは、SELECT クエリから直接 COPY できます。– イゴール・ロマンチェンコ

これが私が最終的に行った解決策です。したがって、ステートメントは次のようになります

COPY (SELECT * FROM a)
TO '/opt/data/a/a.csv' 
WITH DELIMITER E'\x01';

一時テーブル不要!

于 2013-09-10T15:07:55.610 に答える