【发布时间】:2015-11-04 08:35:41
【问题描述】:
我有一个名为 Foo 的表,我正在尝试向其中添加一列“bar”。在python中使用psycopg2,我的函数调用是
cursor.execute('ALTER TABLE "Foo" ADD COLUMN bar text')
但是,我收到以下错误:
relation "Foo" does not exist
我还尝试将架构“公开”放在它之前,但无济于事。我究竟做错了什么?谢谢。
编辑:
CraigRinger 的命令 \dt *.?oo 产生了 No matching relations found
\dt *.foo 和 \dt *.Foo 都产生了以下输出:
List of relations
Schema |Name|Type |Owner
-------+----+-----+--------
public |foo |table|postgres
【问题讨论】:
-
引用标识符使其区分大小写,您确定您的表实际上没有命名为
foo?查看section 4.1.1的最后一段 -
在
psql中\dt *.?oo的输出是什么? -
未找到匹配关系。你是说
\dt *.foo吗? -
通过这个命令,我看到了架构
public下的表格 -
您对@CraigRinger 的回答让我感到困惑。他的命令应该返回任何模式中的所有表,以任何字符开头并以'oo'结尾。此外,如果您发出命令
\dt *.foo并且确实看到了一个表格,那么它必须命名为foo而不是Foo。您能否更新您的问题以包含您提供的 \dt 命令和您获得的完整输出?
标签: python postgresql psycopg2 quoted-identifier