SI Object Browser for Postgresテーブルへ のカラム追加について

 2020.07.13  株式会社システムインテグレータ

こんにちは。今回はSI Object Browser for Postgres(以下、OB Postgres)を使って、カラム追加時の動作の違いを、生成されるSQL文と照らし合わせながら見ていきたいと思います。

テーブル作成と設定の変更

はじめにベースとなる”STUDENT”テーブルを作成します。

SI Object Browser for Postgresテーブルへ のカラム追加について 1
-図1.テーブル”STUDENT”作成-

次にテーブル作成時の動作を見るために、メインウィンドウ中のメニューバー>「ツール」>「オプション」から、「定義変更時に実行されるDDL文を表示する」というチェックボックスにチェックを入れておきます。これによって、テーブルの作成・更新が実際に行われる前に、SQL文が一覧で表示されるようになります。

SI Object Browser for Postgresテーブルへ のカラム追加について 2
-図2. ツール-オプションの変更-

SI Object Browser for Postgresテーブルへ のカラム追加について 3
-図3. 定義情報-DDL文表示の設定-

準備ができました。ここからはテーブルへのカラム追加時の動作の違いを、実際に動かしながら見ていきましょう。

テーブル末尾に追加する

まず、テーブル末尾にカラム追加した際の動作を見ていきます。既存の”STUDENT”テーブルの末尾に、新たに”STUDENT_GRADE”を追加します。

SI Object Browser for Postgresテーブルへ のカラム追加について 4
-図4. “STUDENT”テーブル末尾への追加-

それではテーブルを更新してみましょう。

SI Object Browser for Postgresテーブルへ のカラム追加について 5
-図5. 末尾追加時のSQL文-

SQL文が出力されました。テーブル末尾へのカラム追加では、ADD COLUMNによってテーブル構造の変更が行われることが確認できました。

カラム間に追加する

では既存のカラム間への追加ではどうでしょうか?“STUDENT_BIRTH”と”STUDENT_CLASS”の間に”STUDENT_GRADE”を追加して動作を見てみましょう。

SI Object Browser for Postgresテーブルへ のカラム追加について 6
-図6. “STUDENT”テーブルのカラム間への追加-

同じようにテーブルを更新してみます。

SI Object Browser for Postgresテーブルへ のカラム追加について 7
-図7. カラム間追加時のSQL文-

先程とは全く違う動作になりました。カラム間への追加を行うには、事前にテーブル情報を退避させ、一からテーブルの作り直しをする必要があります。再作成された”STUDENT”テーブルには新たに”STUDENT_GRADE”が追加されており、その後は退避させていたテーブル情報をもとに戻す手続きが行われます。

まとめ

いかがでしょうか?
今回はOB Postgresを用いてカラム追加時の動作の違いについて見ていきました。
カラム追加でテーブル構造を変更する際には、追加位置によって異なる動作をすることが確認できたと思います。OBでは自動でテーブル作成・更新が行えますが、このように生成されたSQL文を見て動作を分析してみるのも、一つの使い方かもしれません。是非お試しください。


RELATED POST関連記事


RECENT POST「【DB入門】PostgresとSQL Server」の最新記事


【DB入門】PostgresとSQL Server

PostgreSQL セッション情報を確認する

【DB入門】PostgresとSQL Server

PostgreSQL ユーザーを作成してみる

【DB入門】PostgresとSQL Server

PostgreSQL テーブル一覧から様々な情報を見る

【DB入門】PostgresとSQL Server

PostgreSQL pg_stat_statementsで統計情報を見てみよう

SI Object Browser for Postgresテーブルへ のカラム追加について
新規CTA