テーブル名に特殊文字を含むテーブルを削除すると、問題が発生します。 (Linux&Postgres)

テーブル名に特殊文字を含むテーブルを削除すると、問題が発生します。 (Linux&Postgres)

Linux(バックエンド:Postgres)では、DROPテーブルコマンドに問題があります。 「prabhu2016-02-08--2016-02-15」というテーブルがあります。次のコマンドを使用してこのテーブルを削除するとエラーが発生します... Error: Syntax error at or Near '-' line 1: ...Action table prabhu2016-02-08--2016-02.. .

コードは次のとおりです。 psql -d DBname -c "テーブル myschema.prabhu2016-02-08--2016-02-15 削除

ハイフン問題のようです。

ベストアンサー1

クエリがshellwizeと複雑で最もよく引用された名前/変数を使用する必要がある場合は、次のようにします。

  1. すべての名前を変数として使用: tablename="bla"
  2. 次のようにpsqlを呼び出します。

    su - postgres -c "/usr/local/ctera/postgres/bin/psql << EOF
    drop table "$tablename";
    EOF"

おすすめ記事