こんにちは。今回はSI Object Browser for Postgres(以下、OB Postgres)を使って、カラム追加時の動作の違いを、生成されるSQL文と照らし合わせながら見ていきたいと思います。
テーブル作成と設定の変更
はじめにベースとなる”STUDENT”テーブルを作成します。
-図1.テーブル”STUDENT”作成-
次にテーブル作成時の動作を見るために、メインウィンドウ中のメニューバー>「ツール」>「オプション」から、「定義変更時に実行されるDDL文を表示する」というチェックボックスにチェックを入れておきます。これによって、テーブルの作成・更新が実際に行われる前に、SQL文が一覧で表示されるようになります。
-図2. ツール-オプションの変更-
-図3. 定義情報-DDL文表示の設定-
準備ができました。ここからはテーブルへのカラム追加時の動作の違いを、実際に動かしながら見ていきましょう。
テーブル末尾に追加する
まず、テーブル末尾にカラム追加した際の動作を見ていきます。既存の”STUDENT”テーブルの末尾に、新たに”STUDENT_GRADE”を追加します。
-図4. “STUDENT”テーブル末尾への追加-
それではテーブルを更新してみましょう。
-図5. 末尾追加時のSQL文-
SQL文が出力されました。テーブル末尾へのカラム追加では、ADD COLUMNによってテーブル構造の変更が行われることが確認できました。
カラム間に追加する
では既存のカラム間への追加ではどうでしょうか?“STUDENT_BIRTH”と”STUDENT_CLASS”の間に”STUDENT_GRADE”を追加して動作を見てみましょう。
-図6. “STUDENT”テーブルのカラム間への追加-
同じようにテーブルを更新してみます。
-図7. カラム間追加時のSQL文-
先程とは全く違う動作になりました。カラム間への追加を行うには、事前にテーブル情報を退避させ、一からテーブルの作り直しをする必要があります。再作成された”STUDENT”テーブルには新たに”STUDENT_GRADE”が追加されており、その後は退避させていたテーブル情報をもとに戻す手続きが行われます。
まとめ
いかがでしょうか?
今回はOB Postgresを用いてカラム追加時の動作の違いについて見ていきました。
カラム追加でテーブル構造を変更する際には、追加位置によって異なる動作をすることが確認できたと思います。OBでは自動でテーブル作成・更新が行えますが、このように生成されたSQL文を見て動作を分析してみるのも、一つの使い方かもしれません。是非お試しください。
- キーワード:
- PostgreSQL