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

postgresのバックスラッシュコマンド(\ COPY)で変数を使用できないのはなぜですか

    一般に、変数の置換はメタコマンド(バックスラッシュで始まる)で機能しますが、\copy これは例外であり、psqlのマンページ に記載されています。 :

    plpgsqlのEXECUTEという質問に対する@BaconBitsのコメントに同意しません。 答えかもしれません。 \copyとは異なり、サーバー側のステートメントは、動的であろうとなかろうと、クライアント側のファイルシステムにアクセスしません。 。 COPYを使用できます 代わりに、スーパーユーザーであり、そのファイルがpostgresにアクセス可能である必要があります。 サーバー上のユーザー。

    \copyに 変数ファイル名から、psqlの前に変数をスクリプトに挿入する必要があります それを読みます。 SQLスクリプトをシェルスクリプトに統合し、それをpsqlにフィードすることができます。 パッチ可能なhere-stringとして、またはsedでフィルタリングします またはperl または同様のUNIX風の方法。




    1. MySQLからNoSQLへの移行の例?

    2. MySQLの変更テーブル変更列がnull値の行で失敗する

    3. mysqlでalterを使用して列を追加する方法は?

    4. SQL Server 2008 R2 がシングル ユーザー モードでスタックする