删除表名中包含特殊字符的表时出现问题。 (Linux&Postgres)

删除表名中包含特殊字符的表时出现问题。 (Linux&Postgres)

我在 Linux 中遇到 DROP table 命令的问题(后端:Postgres)。我有一个名为“prabhu2016-02-08--2016-02-15”的表。当我使用下面的命令删除此表时,我收到错误...错误:“-”第 1 行处或附近的语法错误:...操作表 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"

相关内容