SQLAlchemy gibt „Befehle nicht synchron; Sie können diesen Befehl jetzt nicht ausführen“ zurück, wenn „CALL“ für eine ei
Posted: 03 Jan 2025, 18:10
Ich habe eine einfache MySQL-Prozedur wie folgt:
Ich versuche, es mit MSQLAlchemy 1.4.54 und folgendem Code auszuführen:
Aber ich erhalte die Fehlermeldung:
Ich kann den Aufruf ohne Probleme in der MySQL-Terminal-App und über eine JDBC-Verbindung durchführen, aber nicht über SQLAlchemy.
Irgendeine Idee, warum? Oder welche Parameter benötige ich in der Engine, um dies zu ermöglichen?
Code: Select all
DELIMITER //
CREATE PROCEDURE exampleone()
BEGIN
SELECT * from project;
END //
DELIMITER ;
Code: Select all
engine = create_engine("mysql+mysqlconnector://my_user:my_pass@my_server/my_db", poolclass=NullPool)
res = engine.execute('call exampleone()').fetchall()
Code: Select all
res = engine.execute('call exampleone()').fetchall()
Exception during reset or similar
Traceback (most recent call last):
File "/home/cquiros/data/projects2017/personal/software/env_formshare/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 763, in _finalize_fairy
fairy._reset(pool, transaction_was_reset)
File "/home/cquiros/data/projects2017/personal/software/env_formshare/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 1038, in _reset
pool._dialect.do_rollback(self)
File "/home/cquiros/data/projects2017/personal/software/env_formshare/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 683, in do_rollback
dbapi_connection.rollback()
File "/home/cquiros/data/projects2017/personal/software/env_formshare/lib/python3.10/site-packages/mysql/connector/connection_cext.py", line 583, in rollback
self._cmysql.rollback()
_mysql_connector.MySQLInterfaceError: Commands out of sync; you can't run this command now
Irgendeine Idee, warum? Oder welche Parameter benötige ich in der Engine, um dies zu ermöglichen?