對于以下代碼:
with psycopg.connect(host="host_name", dbname="db_name", user="user", password="pass") as conn:
with conn.cursor() as cur:
cur.execute("SELECT * FROM table_name")
res = cur.fetchall()
print(res)
一切正常,但如果我嘗試通過替換來插入值
cur.execute("SELECT * FROM table_name")
和
cur.execute("INSERT INTO table_name (column_1, column_2) VALUES (%s, %s)", ("a","b"))
我收到以下錯誤“最后一次操作沒有產生結果”是什么原因造成的?
uj5u.com熱心網友回復:
兩種處理方式:
import psycopg2
con = psycopg2.connect(database="test", host='localhost', user='postgres')
cur = con.cursor()
cur.execute("insert into animals values(24, 'fair', 'cat')")
cur.rowcount
1
cur.execute("insert into animals values(34, 'good', 'dog') returning id")
cur.fetchone()
(34,)
第一種方法回傳每個Cursor受操作影響的行數。
第二種方法回傳id欄位,所以實際上有一個結果。
uj5u.com熱心網友回復:
在插入操作的情況下res = cur.fetchall()是多余的。錯誤代碼在這里不言自明。
try:
cur.execute("INSERT INTO table_name (column_1, column_2) VALUES (%s, %s)", ("a","b"))
except:
print('error')
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/331684.html
下一篇:日期差異的情況
