回答編集履歴
6
訂正
    
        answer	
    CHANGED
    
    | @@ -28,9 +28,7 @@ | |
| 28 28 | 
             
            psql hogedb<<EOD
         | 
| 29 29 | 
             
            \set inputfile stdin
         | 
| 30 30 | 
             
            copy hoge from :inputfile with csv HEADER DELIMITER ',';
         | 
| 31 | 
            -
            header_1,header_2,header_3
         | 
| 32 | 
            -
             | 
| 31 | 
            +
            $(cat hoge.csv)
         | 
| 33 | 
            -
            ・・・・・
         | 
| 34 32 | 
             
            \.
         | 
| 35 33 | 
             
            EOD
         | 
| 36 34 | 
             
            ```
         | 
5
訂正
    
        answer	
    CHANGED
    
    | @@ -11,7 +11,7 @@ | |
| 11 11 | 
             
            > ※なぜか「末尾に:がついているのも気になりますが・・・」
         | 
| 12 12 |  | 
| 13 13 | 
             
            copyはpostgresサーバへのコマンドSQL文と同じなので、;が必要です。
         | 
| 14 | 
            -
            \copyはpsqlへのコマンドなのでsetと同様に不要です。
         | 
| 14 | 
            +
            \copyはpsqlクライアントへのコマンドなのでsetと同様に不要です。
         | 
| 15 15 | 
             
            copyはリモートサーバで実行され入力ファイルは、そのサーバで参照可能な場所になります。
         | 
| 16 16 | 
             
            stdin,stdoutはサーバがクライアントのpsqlに対しての要求になりクライアントの入出力が可能となります。
         | 
| 17 17 |  | 
4
追加
    
        answer	
    CHANGED
    
    | @@ -20,4 +20,17 @@ | |
| 20 20 | 
             
            #!/bin/sh
         | 
| 21 21 | 
             
            inputfile=hoge.csv
         | 
| 22 22 | 
             
            psql hogedb -c"\copy hoge from '$inputfile' with csv HEADER DELIMITER ',';"
         | 
| 23 | 
            +
            ```
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            要望されているのと違いますがstdinを使った場合
         | 
| 26 | 
            +
            ```bash
         | 
| 27 | 
            +
            #!/bin/sh
         | 
| 28 | 
            +
            psql hogedb<<EOD
         | 
| 29 | 
            +
            \set inputfile stdin
         | 
| 30 | 
            +
            copy hoge from :inputfile with csv HEADER DELIMITER ',';
         | 
| 31 | 
            +
            header_1,header_2,header_3
         | 
| 32 | 
            +
            data1,data2,data3
         | 
| 33 | 
            +
            ・・・・・
         | 
| 34 | 
            +
            \.
         | 
| 35 | 
            +
            EOD
         | 
| 23 36 | 
             
            ```
         | 
3
追加
    
        answer	
    CHANGED
    
    | @@ -13,4 +13,11 @@ | |
| 13 13 | 
             
            copyはpostgresサーバへのコマンドSQL文と同じなので、;が必要です。
         | 
| 14 14 | 
             
            \copyはpsqlへのコマンドなのでsetと同様に不要です。
         | 
| 15 15 | 
             
            copyはリモートサーバで実行され入力ファイルは、そのサーバで参照可能な場所になります。
         | 
| 16 | 
            -
            stdin,stdoutはサーバがクライアントのpsqlに対しての要求になりクライアントの入出力が可能となります。
         | 
| 16 | 
            +
            stdin,stdoutはサーバがクライアントのpsqlに対しての要求になりクライアントの入出力が可能となります。
         | 
| 17 | 
            +
             | 
| 18 | 
            +
             | 
| 19 | 
            +
            ```bash
         | 
| 20 | 
            +
            #!/bin/sh
         | 
| 21 | 
            +
            inputfile=hoge.csv
         | 
| 22 | 
            +
            psql hogedb -c"\copy hoge from '$inputfile' with csv HEADER DELIMITER ',';"
         | 
| 23 | 
            +
            ```
         | 
2
追加
    
        answer	
    CHANGED
    
    | @@ -12,4 +12,5 @@ | |
| 12 12 |  | 
| 13 13 | 
             
            copyはpostgresサーバへのコマンドSQL文と同じなので、;が必要です。
         | 
| 14 14 | 
             
            \copyはpsqlへのコマンドなのでsetと同様に不要です。
         | 
| 15 | 
            -
            copyはリモートサーバで実行され入力ファイルは、そのサーバで参照可能な場所になります。
         | 
| 15 | 
            +
            copyはリモートサーバで実行され入力ファイルは、そのサーバで参照可能な場所になります。
         | 
| 16 | 
            +
            stdin,stdoutはサーバがクライアントのpsqlに対しての要求になりクライアントの入出力が可能となります。
         | 
1
追加
    
        answer	
    CHANGED
    
    | @@ -5,4 +5,11 @@ | |
| 5 5 | 
             
            ```
         | 
| 6 6 |  | 
| 7 7 | 
             
            \copyで使えないオプションが使えます。
         | 
| 8 | 
            -
            実はstdinとstdoutは\copyコマンドでも同様に可能です。
         | 
| 8 | 
            +
            実はstdinとstdoutは\copyコマンドでも同様に可能です。
         | 
| 9 | 
            +
             | 
| 10 | 
            +
             | 
| 11 | 
            +
            > ※なぜか「末尾に:がついているのも気になりますが・・・」
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            copyはpostgresサーバへのコマンドSQL文と同じなので、;が必要です。
         | 
| 14 | 
            +
            \copyはpsqlへのコマンドなのでsetと同様に不要です。
         | 
| 15 | 
            +
            copyはリモートサーバで実行され入力ファイルは、そのサーバで参照可能な場所になります。
         | 
