如何逐个打印多个数据库表?
如何把表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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。