conn = psycopg2.connect(host='localhost', dbname='mySchema',
user='myUserName', password='myPassword')
cursor = conn.cursor()
cursor.execute("""SELECT relname FROM pg_class WHERE relkind='r'
AND relname !~ '^(pg_|sql_)';""") # "rel" is short for relation.
tables = [i[0] for i in cursor.fetchall()] # A list() of tables.
s = "SELECT"
s += " table_schema"
s += ", table_name"
s += " FROM information_schema.tables"
s += " WHERE"
s += " ("
s += " table_schema = '"+SCHEMA+"'"
s += " AND table_type = 'BASE TABLE'"
s += " )"
s += " ORDER BY table_schema, table_name;"
db_cursor.execute(s)
list_tables = db_cursor.fetchall()
cur.execute("""
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public'
""")
# Fetch all the table names
table_names = cur.fetchall()
# Print the table names
for table_name in table_names:
print(table_name[0])
7条答案
按热度按时间mitkmikd1#
这对我很有效:
prdp8dxp2#
pg_class存储所有需要的信息。
执行以下查询将返回用户定义的表作为列表中的元组
输出:
wecizke33#
问题是如何使用python的psycopg2来处理postgres,这里有两个方便的函数:
bvn4nwqk4#
下面是一个
Python3
代码片段,其中包含connect()
参数,并生成Python
list()
作为输出:46qrfjad5#
虽然Kalu已经回答了这个问题,但是上面提到的查询返回了postgres数据库中的表+视图。如果您只需要表而不需要视图,那么您可以在查询中包含table_type,例如-
qlzsbp2j6#
打开光标后尝试此操作
of1yzvn47#
你可以在python 3中使用这段代码