DB

A5M2でトランザクション管理を有効にしてみた

A5M2(A5:SQL Mk-2)では、デフォルトではオートコミットが有効になっているため、update文やinsert文といったSQLを実行すると、更新内容が即時に確定されてしまうが、A5M2で明示的にコミットやロールバックを行うこともできる。

今回は、A5M2を利用してOracleに接続し、明示的にコミットやロールバックを行ってみたので、その手順を共有する。

なお、今回はOracleに接続した場合について記載しているが、他のデータベース(MySQL, PostgreSQL、SQL Server)に接続した場合も同じ手順で、明示的にコミットやロールバックを行うことができる。

前提条件

下記記事に記載した方法で、A5M2を利用してOracleに接続できていること。

A5M2を利用して各DBに接続してみたA5M2(A5:SQL Mk-2)は、SQL文の入力支援やER図作成などの機能を備えていて、Oracle、MySQL、PostgreSQ...

データベース設定の確認

A5M2のデータベース接続設定を確認すると、データベース更新時に明示的にコミットやロールバックを行う必要があるかどうか(自動的にトランザクションを開始するかどうか)を確認することができる。その手順は、以下の通り。

1) A5M2に接続し、「設定」メニューから「オプション」を選択する。
データベース設定の確認_1

2)「データベース接続」タブ、「データベースの更新時に自動的にトランザクションを開始する」にチェックOFFであると、明示的にコミットやロールバックを行う必要がないことが確認できる。この画面を閉じるには、「キャンセル」ボタンを押下する。
データベース設定の確認_2

データベース更新時にオートコミットされることの確認

A5M2では、デフォルトでは「データベースの更新時に自動的にトランザクションを開始する」のチェックがOFFになっているため、オートコミットされる。その確認手順は、以下の通り。

1) データベース更新前のuser_dataテーブルの内容は、以下の通り。
オートコミット_1

2) user_dataテーブルを追加/更新SQLを指定し、SQLを選択した状態で、「実行」ボタンを押下する。

オートコミット_2_1

SQL実行後、以下のダイアログが表示されるため、「OK」ボタンを押下する。
オートコミット_2_2

3) データベースから切断後、再度、A5M2でデータベースに接続する。
オートコミット_3_1

オートコミット_3_2 オートコミット_3_3

4) データベース更新後のuser_dataテーブルの内容は以下の通りで、SQLの更新内容がコミットされていることが確認できる。
オートコミット_4

高収入・安定型SE転職セミナーが開催されます(2023/6/17(土)午後)SE(システムエンジニア)とは、情報システムの開発や運用を行う業務に従事する人のことをいい、技術革新により様々な情報システムが登場してい...

トランザクションを有効化(ロールバック)

A5M2では、トランザクションを明示的に開始し、データベース更新時にロールバックを行うこともできる。その手順は、以下の通り。

1) データベース更新前のuser_dataテーブルの内容は、以下の通り。
ロールバック_1

2)「トランザクションの開始」ボタンを押下する。
ロールバック_2

3) 以下のように、「コミット」または「ロールバック」のボタンが有効化されることが確認できる。
ロールバック_3

4) user_dataテーブルを追加/更新SQLを指定し、SQLを選択した状態で、「実行」ボタンを押下する。

ロールバック_4_1

SQL実行後、以下のダイアログが表示されるため、「OK」ボタンを押下する。
ロールバック_4_2

5)「ロールバック」ボタンを押下する。
ロールバック_5_1

SQL実行後、以下のダイアログが表示されるため、「はい」ボタンを押下する。
ロールバック_5_2

6) データベースから切断後、再度、A5M2でデータベースに接続する。
ロールバック_6_1

ロールバック_6_2 ロールバック_6_3

7) データベース更新後のuser_dataテーブルの内容は以下の通りで、SQLの更新内容がロールバックされていることが確認できる。
ロールバック_7

「CODE×CODE」は、需要の高い技術(AWS, Python等)を習得できるプログラミングスクールスクールだった近年、さまざまな会社でクラウド(特にIaaSやPaaSのパブリッククラウド)の需要が非常に高まっていて、クラウドサービスによるシステム開...

トランザクションを有効化(コミット)

A5M2では、トランザクションを明示的に開始し、データベース更新時にコミットを行うこともできる。その手順は、以下の通り。

1) データベース更新前のuser_dataテーブルの内容は、以下の通り。
コミット_1

2)「トランザクションの開始」ボタンを押下する。
コミット_2

3) 以下のように、「コミット」または「ロールバック」のボタンが有効化されることが確認できる。
コミット_3

4) user_dataテーブルを追加/更新SQLを指定し、SQLを選択した状態で、「実行」ボタンを押下する。

コミット_4_1

SQL実行後、以下のダイアログが表示されるため、「OK」ボタンを押下する。
コミット_4_2

5)「コミット」ボタンを押下する。
コミット_5_1

SQL実行後、以下のダイアログが表示されるため、「はい」ボタンを押下する。
コミット_5_2

6) データベースから切断後、再度、A5M2でデータベースに接続する。
コミット_6_1

コミット_6_2 コミット_6_3

7) データベース更新後のuser_dataテーブルの内容は以下の通りで、SQLの更新内容がコミットされていることが確認できる。
コミット_7

削除または保存していないWordドキュメントの復元方法【4DDiG Windowsデータ復元】ワード(Word)データ等のファイルを誤って削除してしまった場合は、通常はデータの復元ができませんが、4DDiGというソフトウェアを利用...

データベース更新時に明示的にコミットやロールバックを行う設定にした場合

データベース更新時に明示的にコミットやロールバックを行う設定に変更することもできる。その手順や動作確認結果は、以下の通り。

1)「設定」メニューから「オプション」を選択する。
トランザクションの開始_1

2)「データベース接続」タブ、「データベースの更新時に自動的にトランザクションを開始する」のチェックをONにし、「OK」ボタンを押下する。
トランザクションの開始_2

3) データベース更新前のuser_dataテーブルの内容は、以下の通り。
トランザクションの開始_3

4) user_dataテーブルを追加/更新SQLを指定し、SQLを選択した状態で、「実行」ボタンを押下する。

トランザクションの開始_4_1

SQL実行後、以下のダイアログが表示されるため、「OK」ボタンを押下する。
トランザクションの開始_4_2

5) SQL実行後、「コミット」または「ロールバック」のボタンが有効化されることが確認できる。
トランザクションの開始_5

6)「ロールバック」ボタンを押下する。
トランザクションの開始_6_1

SQL実行後、以下のダイアログが表示されるため、「はい」ボタンを押下する。
トランザクションの開始_6_2

7) データベースから切断後、再度、A5M2でデータベースに接続する。
トランザクションの開始_7_1

トランザクションの開始_7_2 トランザクションの開始_7_3

8) データベース更新後のuser_dataテーブルの内容は以下の通りで、SQLの更新内容がロールバックされていることが確認できる。
トランザクションの開始_8

要点まとめ

  • A5M2を利用すると、デフォルトではオートコミットが有効になっているが、明示的にコミットやロールバックを行うような設定にすることもできる。