DB Tips

[ORACLE]テーブル名を変更する時に注意すること

[ORACLE]テーブル名を変更する時に注意すること

Warning: Undefined variable $cs1 in /home/c4323839/public_html/tak-lab.net/wp-content/plugins/only-tweet-like-share-and-google-1/tweet-like-plusone.php on line 813

Warning: Undefined variable $cs2 in /home/c4323839/public_html/tak-lab.net/wp-content/plugins/only-tweet-like-share-and-google-1/tweet-like-plusone.php on line 813

テスト作業などで、一時的にテーブル名を変更したい場合などはよくある事かと思います。
そのような時にはALTER TABLE文を利用してテーブル変更を行いますが、

ALTER TABLE テーブル名(前) RENAME テーブル名(後);

 

これを実行して、

「よし、ちゃんとテーブル名が変更できている」という所で終わってはいけません。

 

ここでの躓きポイントとして注意をしなければならない事は、
テーブルに作成されているインデックスや主キーなどの制約までは変更されないという事です。

「当たり前だろ」と思われるかもしれませんが、
性能を調査しなければならない時などには、つまずきポイントになり得ます。

 

バックアップ目的など、インデックスや主キーなどまで必要ではない場合は気にする必要はありませんが、テーブル制約が必要な場合は別途、インデックスを変更するなどの対応が必要です。
そういった場合は下記の構文で変更を行います。

ALTER INDEX インデックス名(前) RENAME TO インデックス名(後)
ALTER TABLE テーブル名 RENAME CONSTRAINT 制約名(前) TO 制約名(後)

 

 

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です