タグ

transactionに関するshuuuuunyのブックマーク (2)

  • MySQLのトランザクション制御がキモい話 - なからなLife

    MySQL Casual Advent Calendar 2016 - Qiitaの5日目の記事です。 AdventCalendar自体初参加でドキドキ。 トランザクションの開始は、BEGINしたときじゃない! MySQLでは、BEGIN(START TRANSACTION。長いので、以下、特筆すべき場合以外は「BEGIN」で)を宣言しても、内部的にはまだトランザクションを開始してません。 SQLを投げたタイミングで、トランザクション開始になります。 このとき、更新のない、FOR UPDATEもないSELECT文でも、トランザクションが開始されます。 なにそれきもい。 「AutoCommit=ON/OFF」による違い AutoCommit=ONのとき トランザクションはSQLを発行するたびにBEGIN/COMMITで完了し、ロールバックできません。 複数SQLを束ねて1つのトランザクション

    MySQLのトランザクション制御がキモい話 - なからなLife
  • 【Rails】絶対に抑えたいTransactionのポイントを三つにまとめてみた。【必須】 - Qiita

    Rails公式ドキュメントから、平易な日語でポイントとプラスαまとめています。(公式ドキュメント: http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html) Transaction - 失敗→Save前 Transactionは、複数のSQL文を囲んで、そのSQLそれぞれが成功した場合のみに、すべてのSQLの変更を反映するよというもの。典型的な例は銀行口座の例で、片方の口座からの引き落としに成功した時のみ、もう片方の口座にお金がプラスされるよ、みたいなね。 こんな感じで、Transactionはデータベースの統一性をプログラムやdbのエラーから守るもの。一緒に処理されなきゃいけない処理の塊を持ってる時は絶対に使わなきゃいけない。 例えば、以下の例ではkevinの口座からの引き落としに成

    【Rails】絶対に抑えたいTransactionのポイントを三つにまとめてみた。【必須】 - Qiita
  • 1