插入 returns "the last operation didn't produce a result"
Insert returns "the last operation didn't produce a result"
对于以下代码:
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"))
我收到以下错误“上次操作没有产生结果”是什么原因造成的?
在插入操作的情况下 res = cur.fetchall()
是多余的。错误代码在这里不言自明。
try:
cur.execute("INSERT INTO table_name (column_1, column_2) VALUES (%s, %s)", ("a","b"))
except:
print('error')
两种处理方式:
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,)
第一种方式returns每次操作影响的行数Cursor.
第二种方式returns id
字段所以实际上有一个结果。
对于以下代码:
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"))
我收到以下错误“上次操作没有产生结果”是什么原因造成的?
在插入操作的情况下 res = cur.fetchall()
是多余的。错误代码在这里不言自明。
try:
cur.execute("INSERT INTO table_name (column_1, column_2) VALUES (%s, %s)", ("a","b"))
except:
print('error')
两种处理方式:
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,)
第一种方式returns每次操作影响的行数Cursor.
第二种方式returns id
字段所以实际上有一个结果。