首页 > 解决方案 > 使用 pymysql 调用 mysql 过程

问题描述

我在mysql中有一个名为'my'的程序。查询如下

CREATE DEFINER=`as`@`%` PROCEDURE `my`()
BEGIN
    delete from my1 where datediff(curdate(), Date_) <= 20;
    insert into my1
            select
                t.idx auto_increment,
                t.date_ as 'Date_',
                t.brand as 'Br',
                concat(t.so_, '_', t.me_) as 'Md'
                from 
                    (select idx, date_, brand, so_, me from md where datediff(curdate(), Date_) <= 20) as t
                group by t.date_, t.br;
END

为了在 Python 中运行这个过程,我使用 pymysql 编写了以下代码。

user = 'xxxx'
passw = 'xxxxx'
host = 'xxxx'
port = 3306
database = 'DBxxxx'
conn = pymysql.connect(host=host,
                       port=port,
                       user=user,
                       password=passw,
                       database=database,
                       charset='utf8',
                       local_infile=1)
    try:
        with conn.cursor() as cursor:
              cursor.callproc('my')
              conn.commit()
              conn.close()
    except:
        conn.close()

但效果不好。我写的代码有错误吗?我在 mysql 中运行的程序运行良好

标签: pythonmysqlpymysql

解决方案


推荐阅读