2015-04-03 6 views
0

autocommit в SQLAlchemy:Являются ли 2 автокомментами одинаковыми: SQLAlchemy и MySQL?

sessionmaker(bind=engine, autocommit=False) # autocommit default False 

autocommit в MySQL:

SET AUTOCOMMIT=0 -- autocommit default 1 

Я интересно, есть два autocommits то же самое? Т.е. SQLAlchemy передает autocommit статус MySQL через что-то эквивалентное SET AUTOCOMMIT?

ответ

0

Согласно the docs, они не идентичны (хотя они достигают того же результата).

SQLAlchemy всегда использует транзакции, поэтому он всегда устанавливает AUTOCOMMIT=0 в MySQL. Однако, если вы установили autocommit=True, он будет автоматически звонить .commit() всякий раз, когда вы вносите изменения в данные.

Это делается таким образом, потому что каждая база данных автоматически выполняет аутокоммитцию (если вообще), а SQLAlchemy пытается вести себя последовательно между ними.

Смежные вопросы