声明mysql游标错误

时间:2016-02-10 21:13:04

标签: python mysql sql django cursor

背景:我有一张表,里面有大量需要遍历的条目。目前我在我的Django应用程序中执行此操作,但它占用了太多内存并且需要很长时间。

这是我正在尝试在数据库上执行的内容:

DECLARE gigantic_cursor BINARY CURSOR 
                FOR SELECT * FROM my_table

当我从我的Python项目打开一个连接然后调用它时,我得到一个SQL语法错误。如果我使用BEGIN..END块直接在数据库中执行,则会出现相同的错误。

Python代码看起来像:

cursor = connections['default'].cursor()
cursor.execute("DECLARE gigantic_cursor BINARY CURSOR 
                FOR SELECT * FROM my_table")

关于导致这种情况的任何想法?

编辑: 将声明放在存储过程中,如下所示:

mysql> DELIMITER //
mysql> CREATE PROCEDURE CreateCursor()
-> BEGIN
-> DECLARE c1 CURSOR FOR SELECT * FROM my_table;
-> END//

Python现在是

cursor = connections['default'].cursor()
cursor.execute("exec CreateCursor()")

现在抛出*** ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'exec CreateCursor()' at line 1")

0 个答案:

没有答案