sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué el procedimiento almacenado llamado desde sqlalchemy no funciona pero sí funciona la llamada desde el banco de trabajo?

No he llamado a procesos almacenados desde SQLAlchemy, pero parece posible que esto pueda estar dentro de una transacción porque está usando la sesión. Quizás llamando a db.session.commit() al final ayudaría?

Si eso falla, SQLAlchemy llama a llamando a los procesos almacenados aquí. Quizás pruebe su método de usar callproc . Adaptándose a su 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()