Oracleで途中からプライマリーキーを追加する

oracleを使って開発中に途中で、テーブルの世代管理が必要になるという悲劇に遭遇した際は
世代管理用フィールドの追加とPrimaryKeyを張り替えます

ALTER TABLE sample_table ADD (
    rev NUMBER(8)
);

ALTER TABLE sample_table DROP PRIMARY KEY;

UPDATE sample_table SET rev  = 0;

ALTER TABLE sample_table ADD PRIMARY KEY (ID, REV);

IDはもともと用意していたPrimary keyです
Primary keyにするにはnullではだめなので、0をセットしています

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください