2016-08-31 3 views
0

Мои настройки работают, но мои обновления и удаления нет.SqlAlchemy commit после использования функции update() без использования сеанса

db_jb = create_engine(jb) 
self.jobs = Table('Job', MetaData(jb), autoload=True) 
# select - works 
ss = select(self.jobs).where(
    self.jobs.c.job_guid == jobGuid 
).limit(1) 
rs = ss.execute() 
rows = [r for r in rs] 
rs.close() 
# update - does not work 
su = update(self.jobs, mysql_limit=1).where(
    self.jobs.c.job_guid == jobGuid 
).values(jobStatus=status) 
# does not have an affect 
su.execution_options(autocommit=True) 
rs = su.execute() 
rs.close() 

приукрасить переменную su и запрос является правильным, но его не совершается

str(su.compile(dialect=None, compile_kwargs={'literal_binds': True})) 

Как совершить мои изменения без использования сессии?

ответ

1

ли вы пытаетесь выполнить COMMIT в качестве исходного заявления, как

db_jb.execute('COMMIT') 

Вы можете также поместить db_jb.execute('BEGIN') непосредственно перед ss = ... явно начать транзакцию

+0

я узнал, что я пропускал мои 'RS = su.execute() 'потому что у меня был переключатель командной строки для отладки ... Doh! Несмотря на то, что код работает, спасибо за ответ на мой вопрос – SomeGuyOnAComputer