我正在通过存储过程插入数据,并尝试获取插入的最后一个id。正在插入数据。但当我试图返回最后一个id时,我得到的是0或0。由于数据复制,我手动设置了id字段。不知道我错过了什么。
query='database.insert_data'
params ='Josh'
last_id = mysql_conn.insert_proc(query, params)
print(last_id.fetchone())
prints none
class to insert data
def insert_proc(self,query,params):
self.curr.callproc(query, params)
self.conn.commit()
return self.curr
stored procedure
CREATE DEFINER=`me`@`localhost` PROCEDURE `insert_data`(v_name varchar(10))
SET @max_id = (select max(id)+1 from table);
insert into table (id,name)values(@max_id,v_name);
select @max_id;
1条答案
按热度按时间mutmk8jj1#
我不太熟悉python,但根据mysql文档:
存储过程生成的结果集将自动获取并存储为mysqlcursorbuffered示例。有关使用这些结果集的详细信息,请参阅存储的\u results()。
“see stored_results()”引出了以迭代为特征的代码示例
cursor.stored_results()
.