- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我可以连接到我的数据库,但是 psycopg2 找不到我的任何表。以下将在尝试获取我的用户时出错:
import psycopg2
try:
conn = psycopg2.connect("dbname='pdb' user='postgres' host='localhost' password='password'")
except:
print 'failed to connect'
cur = conn.cursor()
cur.execute(""" SELECT * from Users """)
rows = cur.fetchall()
for row in rows:
print row[0]
#Error:
psycopg2.ProgrammingError: relation "users" does not exist
LINE 1: SELECT * from Users
# This also fails
cur.execute("""SELECT * from pdb.Users """)
如果我这样做:
cur.execute(""" SELECT * from pg_database """)
# Outputs
template1
template0
postgres
pdb
在我的管理面板中,pdb 显示了一堆表,其中一个是 Users
,所以我不确定为什么 psycopg2 找不到它。
这是 pdb
的 psql 打印输出:
List of relations
Schema | Name | Type | Owner
--------+--------------------+-------+----------
public | Companies | table | postgres
public | Users | table | postgres
(2 rows)
最佳答案
您的表名 Users
和 Companies
均以大写字母开头。 PostgreSQL 会将所有标识符转换为小写(默认情况下),您可以从错误消息中看到:
psycopg2.ProgrammingError: relation "users" does not exist
users
全部小写。如果您希望严格遵循 SQL 标准(因为 PostgreSQL 是著名的),这是必需的。您可以通过两种方式解决此问题:
在你的数据库中解决它:
遵守通用约定并将您的表重命名为全部小写。
在你的代码中解决它:
引用你的标识符(在本例中是你的表名),这样 PostgreSQL 将保持它们不变:
cur.execute(""" SELECT * from "Users" """)
关于python - 连接后 psycopg2 找不到任何表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27434633/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!