Включить выполнение нескольких операторов во время выполнения через sqlalchemy

У меня есть объект DDL ( create_function_foo ), который содержит инструкцию функции create. В первой строке я положил DROP FUNCTION IF EXISTS foo; но engine.execute(create_function_foo) возвращает:

 sqlalchemy.exc.InterfaceError: (InterfaceError) Use multi=True when executing multiple statements 

Я положил multi=True как параметр для create_engine , engine.execute_options и engine.execute но он не работает.

ПРИМЕЧАНИЕ : engine если мой экземпляр create_engine

ПРИМЕЧАНИЕ . Я использую python 3.2 + mysql.connector 1.0.12 + sqlalchemy 0.8.2

 create_function_foo = DDL("""\ DROP FUNCTION IF EXISTS foo; CREATE FUNCTION `foo`( SID INT ) RETURNS double READS SQL DATA BEGIN ... END """) 

Где я должен сказать?

  • Может ли SQLAlchemy's session.merge () обновить свой результат с новыми данными из базы данных?
  • Флажок и SQLAlchemy и объект MetaData
  • Flask-SQLAlchemy и Flask-Restless не заставляют внуков
  • SQLAlchemy упорядочивает, рассчитывая на отношение многих ко многим
  • Может ли SQLAlchemy быть настроен на неблокирование?
  • Как обновить временную метку родительской таблицы при изменении дочерней таблицы?
  • SQLAlchemy: создание или повторное использование сеанса
  • добавить столбец в таблицу SQLAlchemy
  • One Solution collect form web for “Включить выполнение нескольких операторов во время выполнения через sqlalchemy”

    multi=True – это требование для соединителя MySql. Вы не можете установить этот флаг, передавая его методам SQLAlchemy. Сделай это:

     conn = session.connection().connection cursor = conn.cursor() # get mysql db-api cursor cursor.execute(sql, multi=True) 

    Подробнее здесь: http://www.mail-archive.com/sqlalchemy@googlegroups.com/msg30129.html

    Python - лучший язык программирования в мире.