存储过程获取最后插入的行python mysql conn

2024-04-26 11:33:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在通过存储过程插入数据,并尝试获取插入的最后一个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;

Tags: 数据nameselfiddatatableparamsproc
1条回答
网友
1楼 · 发布于 2024-04-26 11:33:32

我不太熟悉Python,但根据MySQL文档here

Result sets produced by the stored procedure are automatically fetched and stored as MySQLCursorBuffered instances. For more information about using these result sets, see stored_results().

“see stored_results()”引出了以cursor.stored_results()上的迭代为特征的代码示例。你知道吗

相关问题 更多 >