テーブル削除・作成すると
以下項目が削除されてしまい、めんどくさいので手順をここに残します。
※ワタシガ検証して分かった事。他にもあるかも知れません。
残らない項目
・権限
・カラムコメント
・デフォルト値定義
残る項目
・シノニム
・シーケンス
■反映
1.datapumpツールを使用してデータをエクスポート
impdp SYSTEM DIRECTORY=xxx CONTENT=DATA_ONLY TABLES= スキーマ名.元テーブル名 DUMPFILE= 任意のファイル名.dmp LOGFILE=任意のファイル名_yyyymmdd_imp.log
2,テーブルのバックアップ
CREATE TABLE スキーマ.バックアップテーブル名 AS SELECT * FROM スキーマ.バックアップ元テーブル名;
3.テーブル削除
DROP TABLE スキーマ.元テーブル名;
4,新規テーブル作成
CREATE TABLE スキーマ.新テーブル名~;
5.データ投入
datapumpツールを使用してデータをインポート
impdp SYSTEM DIRECTORY=xxx CONTENT=DATA_ONLY TABLES= スキーマ名.元テーブル名 DUMPFILE= 任意のファイル名.dmp LOGFILE=任意のファイル名_yyyymmdd_imp.log
6,権限追加(3のDROPで削除される為再作成)
GRANT SELECT,INSERT,UPDATE,DELETE ON スキーマ名.元テーブル名 TO 権限付与される側のスキーマ名;
■切戻手順
万が一の場合、以下手順で切り戻します。
1,テーブル削除
DROP TABLE スキーマ名.テーブル名;
2,バックアップから復元
ALTER TABLE スキーマ名.バックアップテーブル名 RENAME TO 元テーブル名;
ALTER TABLE スキーマ名.元テーブル名 ADD CONSTRAINT PK名 PRIMARY KEY(カラム1,カラム2);
3,コメント追加
COMMENT ON COLUMN スキーマ名.元テーブル名.CONTACT_COMMENT IS 'コメント';
4,権限追加(2のDROPで削除される為再作成)
GRANT SELECT,INSERT,UPDATE,DELETE ON スキーマ名.元テーブル名 TO 権限付与される側のスキーマ名;
5,一定期間保存後、不要になったらバックアップ削除
DROP TABLE スキーマ.バックアップ元テーブル名;