sql >> Databáze >  >> RDS >> Mysql

nastavit relaci v objektu relace SQLAlchemy

Použijte událost relace pro provedení libovolného příkazu SQL při každé nové transakci. Můžete také použít události na úrovni připojení, záleží na vašem případu použití.

Zde je návod, jak bych to udělal na úrovni relace:

Session = sessionmaker()
@event.listens_for(Session, 'before_flush')
def set_max_heap_table_size(session, transaction, connection):
    session.execute('SET max_heap_table_size = 1024 * 1024 * 64')

Pokud si nejste jisti, který způsob pro vás funguje, prostě je vyzkoušejte, napište nějaké testovací případy a zjistěte, zda to funguje pro vás.

Může existovat jedno upozornění (nejisté):Vzhledem k tomu, že připojení není přerušeno, ale vráceno do fondu, může nastavení přetrvávat. V tomto případě můžete také chtít připojit něco pro obnovení výchozího nastavení, např. na after_flush událost. Nejsem si tím úplně jistý, možná budete chtít experimentovat. Pokud to není nutné, můžete také použít after_begin událost, ale neexistuje žádný skutečný before_close událost, která to zabalí, takže by to mohlo způsobit problémy.



  1. Jak přidat logo do záhlaví formuláře v aplikaci Access

  2. Pokud jinak na klauzuli WHERE

  3. vnitřní spojení a výkon klauzule where in()?

  4. Jak vrátit více řádků z uložené procedury? (Oracle PL/SQL)