第107回 Oracleのお勉強 テーブルを中身ごとコピーする

いま

SQL> desc t_group_date
 名前                                      NULL?    型
 ----------------------------------------- -------- --------------

 D_CREATE                                           DATE
 C_STATUS                                           CHAR(2)

こういうテーブルの作りで、

SQL> select * from t_group_date;

D_CREATE C_STATUS
-------- ----------
09-01-01 5
09-01-01 5
09-01-02 5
09-01-02 0

こういうデータが入っているとする。



このテーブルを都合上いじりたくなく、
同じ中身(データ)のテーブルを新しく作りたいとする。


そういうときは、

create tebale コピー先テーブル as select * from コピー元テーブル

が使える。


やってみよう。

SQL> create table t_hoge as select * from t_group_date
SQL> select * from t_hoge;

D_CREATE C_STATUS
-------- ----------
09-01-01 5
09-01-01 5
09-01-02 5
09-01-02 0

SQL> desc t_hoge;
 名前                                      NULL?    型
 ----------------------------------------- -------- --------------

 D_CREATE                                           DATE
 C_STATUS                                           CHAR(2)

ほらできた。


http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_k06.htm
ここによると、整合性制約はコピーされないみたいです。