読者です 読者をやめる 読者になる 読者になる

kagamihogeの日記

kagamihogeの日記です。

SQL Developerの表作成機能についてのメモ

DB Oracle SQL Developer

CREATE TABLEのGUI。プロジェクトなどによってはテーブル定義書からSQLを生成するマクロであったり何らかのツール使って生成するのだけど、そういうのが無かったり個人の実験用途でテキトーにテーブルをこさえたいときは、文法の細かいとこまで覚えてなかったりするのでGUIでポチポチするだけでテーブル作れると何かとありがたい。

カンタンな使い方のメモなど

初期表示

エクスプローラの表のところを右クリック -> 新規の表から表の作成画面が開ける。初期表示では、下記のように割とそっけない。GUIで出来るのはカラムの増減くらいで、型がこんだけしか出てこないのにビビる。ぶっちゃけあまり使えないなぁと最初は思っておりまして、DDLのタブで実際に発行される文が表示されるからあとはそれを編集してください、のかと考えていたのだが……

詳細

↑のスクショで赤枠で囲った詳細のチェックボックスにチェックを入れると、下記のような画面になる。型も(調べてないけど)ほとんどのがあるっぽいし、索引とか制約とかもだいたい見たまんまのことが出来る。DDLで実際に発行されるSQLが表示されるので、必要があればここでチェックする、といった感じ。

ちなみに表タイプは下記など参照。

詳細の使い方の例:列シーケンス

開発をしていると、テーブルを作る時に適当なシーケンスも一緒に作ってくれや、とものぐさな気分になることもよくある。そういうときは、列シーケンス -> 列を選択して -> 挿入時にシーケンスから列を挿入、にチェックを入れておけば、テーブル作成時にテキトーなシーケンスも一緒に作ってくれる。なお、初期値1増分1で作られる。細かい制御は利かないけど、たいてはコレで充分でしょう。

テーブルの削除(drop)と切捨て(truncate)

下図キャプチャのように、エクスプローラのテーブル選択 -> 右クリックでコンテキストメニュー表示 -> 表 -> 削除または切捨て を選ぶ。drop or truncateのGUIラッパーに過ぎないのでSQLタブで実際に実行されるクエリの中身を見れる。

下記SQL例は、上記の図で削除プラスパージのチェックボックスにチェックを入れた場合のもの。

drop table "KAGAMIHOGE"."HOGE"  PURGE;

下記SQL例は、上記の図で切捨てを選んだ場合のもの。

truncate table "KAGAMIHOGE"."HOGE" drop storage;
ごみ箱

詳細は、Oracle DatabaseのリサイクルビンとかFlashback Dropとかでぐぐってもらうとして。ここではSQL Developer上での操作に絞ってメモ書きを残す。

まずテーブルをpurgeオプションなしで削除する。

drop table "KAGAMIHOGE"."HOGE";

そうすると、エクスプローラのごみ箱にテーブル(下図の例ではHOGEテーブル)が移動される。表示領域内の、アクション...をクリックすると「パージ...」「削除前にフラッシュバック...」が表示される。

パージを選ぶと、実行確認のダイアログおよびSQLが表示される。下記は、SQLの例。これを実行すると、領域が解放される。

purge TABLE "KAGAMIHOGE"."BIN$5HB6DR33XkHgQAB/AQAI4w==$0";

削除前にフラッシュバックを選ぶと、実行確認のダイアログおよびSQLが表示される。下記は、SQLの例。これを実行すると、テーブルが元に戻る。

flashback table "KAGAMIHOGE"."BIN$5HB6DR35XkHgQAB/AQAI4w==$0" to before drop rename to HOGE;

なお、SQL DeveloperのGUIではテキストボックス「オブジェクト名にフラッシュバック 削除前にフラッシュバック」を入力しないとSQLがエラーになる。これは単にGUIがそうなっているだけで、下記のように「drop rename to」を消して実行すれば削除前のテーブル名に戻せる。

flashback table "KAGAMIHOGE"."BIN$5HB6DR35XkHgQAB/AQAI4w==$0" to before drop;