Mysql
 sql >> Database >  >> RDS >> Mysql

perché la procedura memorizzata chiamata da sqlalchemy non funziona ma la chiamata da workbench funziona?

Non ho chiamato i processi archiviati da SQLAlchemy, ma sembra possibile che ciò possa essere all'interno di una transazione perché stai utilizzando la sessione. Forse chiamando db.session.commit() alla fine aiuterebbe?

In caso contrario, SQLAlchemy richiama chiamando stored procs qui. Forse prova il loro metodo per usare callproc . Adattandosi al tuo caso d'uso, qualcosa come:

connection = db.session.connection()
try:
    cursor = connection.cursor()
    cursor.callproc("escalatelobalarm", [clientid])
    results = list(cursor.fetchall())
    cursor.close()
    connection.commit()
finally:
    connection.close()