我正在Python中执行如下所示的SQL脚本:
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倍!
是否有一种方法可以使光标简单地跳到最终声明的结果,还是我做错了什么?