MySQLはtransaction中でもselectできる
本番DBへクエリを流す
手で本番DBにクエリを流すのは人生で初めてだった。
これまではmigrateツールがよしなにやってくれていたので、あんまりそんな機会がなかった。
migrationツールがないチームに異動して初の体験。
mysqlでtransactionを使った
今日、業務中に何気なく transactionを初めて使った。
> begin; > update ... > commit;
トランザクションを開始するとcommitを適用するまでは操作がデータベースに適用されない。
当たり前だよね。
rollback;
を実行すれば、操作はなかったことになる。
トランザクション中のselectは結果を反映している
実はこの時、トランザクション中にselectを叩くと、操作が反映された状態のテーブルにクエリがかかる。
なので、commit;
前に操作結果を反映した状態のテーブルを見ることができる。
当然、まだ本物のテーブルには操作が反映されていないので仮想的なテーブルに対してクエリしているんだろう。
何気に知らなかったのでメモっておこう