Получить последний результат Python для нескольких операторов SQL - PullRequest
0 голосов
/ 26 апреля 2019

Я выполняю сценарий SQL на Python, который выглядит примерно так:

1    INSERT INTO my_table VALUES (1, 2, 3);
2    SET @var_1 = LAST_INSERT_ID();
3    INSERT INTO my_table VALUES (4, 5, 6);
4    SET @var_2 = LAST_INSERT_ID();
5    INSERT INTO my_table VALUES (7, 8, 9);
6    SET @var_3 = LAST_INSERT_ID();
7    SELECT @var_1, @var_2, @var_3;

Как видите, только последний оператор возвращает что-либо.

Однако в Python длячтобы получить результат из этого последнего утверждения, я должен перебрать все остальные операторы :

cursor : MySQLdb.cursors.Cursor

for _ in range( num_statements - 1 ):
    cursor.nextset()

result = cursor.fetchone()

Для моего примера из 7 операторов это не проблема,однако для запроса на 100 000 операторов этот простой итерационный процесс выполняется в 10 раз дольше, чем для выполнения самого запроса!

Есть ли способ заставить курсор просто перейти к результату финального запроса?Скажите, или я что-то не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...