хранимая процедура получить последнюю вставленную строку Python MySQL коннектор - PullRequest
0 голосов
/ 04 июня 2018

Я вставляю данные с помощью процедуры сохранения и пытаюсь получить последний вставленный идентификатор.Данные вставляются.Но когда я пытаюсь вернуть последний идентификатор, я не получаю ни одного или 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 Ответ

0 голосов
/ 04 июня 2018

Я не очень знаком с Python, но согласно документации MySQL здесь :

Наборы результатов, созданные хранимой процедурой, автоматически выбираются и сохраняются как экземпляры MySQLCursorBuffered.Для получения дополнительной информации об использовании этих наборов результатов см. Сохраненные_ресурсы ().

«см. Сохраненные_ресурсы ()» приводит к примерам кода с итерацией по cursor.stored_results().

...