sql >> データベース >  >> RDS >> PostgreSQL

zip形式のCSVファイルをPostgreSQLにインポートする

    名前付きパイプを使用する古いトリックがあります(Unixで動作し、Windowsについてはわかりません)

    • 名前付きパイプを作成します:mkfifo /tmp/omyfifo
    • ファイルの内容を書き込みます:zcat mycsv.csv.z > /tmp/omyfifo &
    • [from psql] copy mytable(col1,...) from '/tmp/omyfifo'
    • [終了時]:rm /tmp/omyfifo

    zcat バックグラウンドでは、リーダー(ここではCOPY)までブロックされます コマンド)が読み取りを開始し、EOFで終了します。 (またはリーダーがパイプを閉じた場合)

    複数のパイプとzcatのペアを開始することもできます。これは、複数のCOPYによって取得されます。 SQLスクリプトのステートメント。

    これはpgadminから機能しますが、fifo(+ zcatプロセス)はDBMSサーバーが実行されているマシンに存在する必要があります。

    ところで:netcatを使用した同様のトリックを使用して、リモートマシンからファイルを読み取ることができます(もちろん、ファイルをネットワークソケットに書き込む必要があります)



    1. クラウドベンダーの詳細:MicrosoftAzure上のPostgreSQL

    2. 複数の列を持つ複数のテーブルを含む.sqliteから列を取得する

    3. MySQLでシーケンスを作成する方法

    4. エラー1396(HY000):'jack'@'localhost'の操作CREATEUSERが失敗しました