如何逐个打印多个数据库表?

后端开发 2026-07-10

如何把表a、b、c逐个打印出来。
为什么 cursor.fetchall() 不会这样工作?
我正在用Python读取PostgreSQL数据库中的表。

import psycopg2

conn = psycopg2.connect(
   database="Sample",
    user='postgres',
    password='password',
    host='localhost',
    port= '5432'
)

cursor = conn.cursor()

cursor.execute("SELECT * FROM Table_A")
cursor.execute("SELECT * FROM Table_B")
cursor.execute("SELECT * FROM Table_C")

print(cursor.fetchall())

解决方案

每次调用 cursor.execute(...) 时,它都会替换上一次的查询结果,因此等到你调用 fetchall() 时,你只能得到Table_C的结果。

相反,你需要在每次执行后立即存储或打印结果:

import psycopg2


conn = psycopg2.connect(
   database="Sample",
    user='postgres',
    password='password',
    host='localhost',
    port= '5432'
)


cursor = conn.cursor()

tables = ["Table_A", "Table_B", "Table_C"]

for table in tables:
    cursor.execute(f"SELECT * FROM {table}")
    results = cursor.fetchall()
    print(f"{table}:")
    for row in results:
        print(row)
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章