Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

por que o procedimento armazenado chamado do sqlalchemy não está funcionando, mas a chamada do workbench está funcionando?


Eu não chamei procs armazenados do SQLAlchemy, mas parece possível que isso possa estar dentro de uma transação porque você está usando a sessão. Talvez chamando db.session.commit() no final ajudaria?

Se isso falhar, SQLAlchemy chama chamando procedimentos armazenados aqui. Talvez tente o método deles de usar callproc . Adaptando ao seu caso de uso, algo como:
connection = db.session.connection()
try:
    cursor = connection.cursor()
    cursor.callproc("escalatelobalarm", [clientid])
    results = list(cursor.fetchall())
    cursor.close()
    connection.commit()
finally:
    connection.close()