0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Python用のMySQLコネクタでトランザクションの開始終了を実装する方法

Posted at

前提

Pythonのmysql.connectorには、
self.conn.commit()
self.conn.rollback()
上記の、トランザクションのコミットもしくはロールバックのメソッドは存在します。

しかし、トランザクションの「開始」用のメソッドは存在しません。
存在しませんが、自動でトランザクションを開始してくれているわけではないので、自前で
トランザクションを開始させる必要があります。

実現方法

mysql.connector.cmd_query('START TRANSACTION')
これを起動することでOKです。(MySQL用のトランザクション開始クエリーをself.conn.cmd_query
メソッドで発行します)

おまけ

mysql.connector.cmd_queryは引数に指定した文字列のクエリを発行してくれるため便利です。

mysql.connector.cmd_query('SET innodb_lock_wait_timeout=1')
例えば、これを発行すると、トランザクションタイムアウトの時間を制御できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?