こんにちは!データベースの操作、日々お疲れ様です。
本番環境やステージング環境のDBに接続してデータを修正するとき、一番怖いのが「オートコミット(自動確定)」の存在ですよね。
「条件(WHERE句)を書き忘れたまま UPDATE や DELETE を実行してしまい、全データが消し飛んだ……」なんていう悪夢は、エンジニアなら誰もが避けたいところ。
昔ながらのツール「CSE」などは手動コミットが扱いやすかったため、「A5:SQL Mk-2(以下A5M2)はデフォルトがオートコミットONだから、危なくて本番では使いづらいなぁ」と思っていませんか?
トピック: オートコミットOFF機能について | (mmatsubara.com)
今も選べないのだろうか。作業内容によってはCSEとか別のツールの方が安全かなぁ。
と思っていましたが、実は、A5M2でも設定次第で簡単にオートコミットをOFFにして、安全なトランザクション管理を行うことができます!デフォがオートコミットオフだといいなぁ。
【参考】
A5M2でトランザクション管理を有効にしてみた|ITエンジニアとして経験・学習したこと (purin-it.com)
今回は、A5M2でオートコミットを無効化する2つのアプローチと具体的な手順を分かりやすく解説します!
方法①:【常時安全】常に自動でオートコミットをOFFにする(推奨)
「毎回手動でトランザクションを開始するのは、いつか忘れてしまいそうで怖い」という方は、ツール全体の設定を変更して、常にオートコミットをOFFの状態でSQLを実行できるようにしましょう。
🛠️ 設定手順
-
A5M2の上のメニューから 「設定」 ➔ 「オプション」 を開きます。
-
左メニューから 「データベース接続」 を選択します。
-
「データベースの更新時に自動的にトランザクションを開始する」 にチェックを入れ、設定を保存します。
Plaintext
「設定」 ➔ 「オプション」 ➔ 「データベース接続」
➔ [🔑 データベースの更新時に自動的にトランザクションを開始する] にチェック!
📝 SQL実行後の動き
この設定をしておくと、SQLを実行した後に自動的にトランザクションが保留状態になります。 画面内のツールバーにある 「コミット(確定)」 または 「ロールバック(取り消し)」 ボタンが有効化されるので、実行結果を確認した後にどちらかのボタンを押して必ず後処理を行ってください。
方法②:【必要な時だけ】デフォルトONのまま、手動でトランザクションを開始する
「普段の開発(ローカル環境など)はサクサク動くオートコミットONが良いけれど、特定のDBを触るときだけ手動コミットに切り替えたい」という場合は、都度手動で開始する方法がスマートです。
🛠️ 操作手順
-
対象のデータベースに接続します。
-
※このとき、接続設定の 「読み取り専用でログイン」のチェックが外れていること を確認してください。
-
-
SQLを実行する前に、画面のツールバーにある 「トランザクションを開始」ボタン をクリックします。
-
いつも通りSQLを実行します。
-
実行後、有効化された 「コミット」 または 「ロールバック」 ボタンを押して後処理を行います。
この方法なら、ボタンを押したそのセッションの間だけ、安全な手動コミットモード(CSEのような挙動)で作業することができます。
💡 本番環境を触るときの最強の防衛策
A5M2には、接続先のデータベースごとに 「接続背景色」 を変えられる機能がついています。
-
本番環境: 背景色を「警告の赤」にする
-
開発環境: 背景色を「安全の緑」にする
今回ご紹介した「オートコミットOFF」の設定と合わせて、本番DBの背景色を赤色に変えておけば、「今自分は危険な場所を触っている」という視覚的な意識も高まるため、誤操作の確率を極限まで減らすことができますよ!
まとめ:A5M2は設定次第で「超安全なツール」になる
「A5M2はデフォルトがオートコミットONだから怖い」というイメージを持っていた方も、この設定さえ知っていれば、他のどのSQL開発ツールよりも安全で強力な相棒になってくれます。
-
全体で縛るなら: オプションから「自動的にトランザクションを開始する」
-
一時的に縛るなら: SQL実行前に「トランザクションを開始」ボタン
知らず知らずのうちにデータを消し飛ばして青ざめる前に、ぜひ今すぐ設定を見直してみてくださいね!
