0
私の選択は機能しますが、更新と削除は機能しません。セッションを使用せずにupdate()関数を使用した後のSqlAlchemyコミット
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}))
をコミットされていませんか?
あなたはまた、明示的にトランザクションを開始するだけで
ss = ...
前db_jb.execute('BEGIN')
を置くことができのように、生の文として
COMMIT
を実行しようとしなかった私は 'RSを飛ばしたこと=私はデバッグのためのコマンドラインスイッチを持っていたので、su.execute() 'コマンド... Doh!コードは動作しますが、私の質問に答えてくれてありがとう – SomeGuyOnAComputer