python:postgresql:casesensitive列名

时间:2015-07-20 16:01:40

标签: python postgresql case-sensitive psql

我正在尝试在psql DB上执行选择查询。 但我的专栏名称是“Tagnaam”,因此区分大小写。

我正在尝试此查询:

cur.execute("SELECT Tagnaam FROM opc_taginstellingen")

我读过解决方案是在列名上使用双引号,但这不能解决它。

我也尝试过:

cur.execute("SELECT "Tagnaam" FROM opc_taginstellingen")
cur.execute("SELECT ""Tagnaam"" FROM opc_taginstellingen")
cur.execute("SELECT '"Tagnaam"' FROM opc_taginstellingen")

以上都没有。

它给出的错误:

    cur.execute("SELECT Tagnaam FROM opc_taginstellingen")
psycopg2.ProgrammingError: column "tagnaam" does not exist
LINE 1: SELECT Tagnaam FROM opc_taginstellingen
               ^

我该如何解决这个问题?

提前致谢。

2 个答案:

答案 0 :(得分:1)

在查询周围使用"Tagnaam"和单引号(' ')应该有效:

cur.execute('SELECT "Tagnaam" FROM opc_taginstellingen')

答案 1 :(得分:0)

Postgresql和所有数据库(Oracle,Db2 ...)通常以不区分大小写的方式处理列名,因此无论您如何在查询中编写字段名称,都应如此。 首先尝试psql客户端中的所有内容。如果它工作,你可以将它添加到python代码,但要小心,如果你在字符串中使用“”,你应该写像'string with“quotedString”inside“字符串。单引号和双引号的情况交换也可能发生。