Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum funktioniert die von sqlalchemy aufgerufene gespeicherte Prozedur nicht, aber das Aufrufen von Workbench funktioniert?

Ich habe keine gespeicherten Prozeduren von SQLAlchemy aufgerufen, aber es scheint möglich, dass dies innerhalb einer Transaktion sein könnte, weil Sie die Sitzung verwenden. Vielleicht Aufruf von db.session.commit() am Ende würde helfen?

Wenn dies fehlschlägt, ruft SQLAlchemy gespeicherte Prozeduren aufrufen hier. Versuchen Sie vielleicht ihre Methode, callproc zu verwenden . Anpassung an Ihren Anwendungsfall, so etwas wie:

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