12.15.1 指定方法
定義系SQLのCREATE TABLEでINSERT ONLYオプション(改竄防止オプション)を指定します。また,ALTER TABLEでINSERT ONLYオプションを指定して,既存の表を改竄防止表に定義変更することもできます。
表定義又は定義変更時に次の列を定義できます。
-
更新可能列を定義すると,列単位に,次の方法でデータを更新できます。
-
常に更新できる(UPDATEを指定)
-
ナル値から非ナル値へ一度だけ更新できる(UPDATE ONLY FROM NULLを指定)
更新可能列を定義できるのは,次の時点です。
-
CREATE TABLE実行時
-
ALTER TABLE(CHANGE INSERT ONLY)実行前
-
ALTER TABLE(ADD 列名),又はALTER TABLE(CHANGE 列名)※実行時
- 注※
-
ALTER TABLE(CHANGE 列名)は,改竄防止表に対しては実行できません。既存の表を改竄防止表に定義変更する場合,事前に実行します。
-
-
挿入履歴保持列を定義すると,行削除禁止期間を指定できます。行削除禁止期間を省略すると,表データは一切削除できません。また,表にデータがあるとDROP TABLEが実行できないため(「定義系SQL」参照),行削除禁止期間を省略した場合,表及び表データは共に削除できません。そのため,データの保存期間が決まっている場合,又は決められる場合は行削除禁止期間を指定してください。
なお,データベース再編成ユティリティやpdrelsコマンドでのRDエリアに対する運用に制限がある※ため,改竄防止表は1表1RDエリアに格納することをお勧めします。
- 注※
-
データベース再編成ユティリティで改竄防止表の再編成をする場合,RDエリアのコマンド閉塞が必須です。また,データベース再編成ユティリティが異常終了した場合は,再編成が完了するまでRDエリアの閉塞が解除できないため,該当するRDエリアに別の表やインデクスが定義されている場合は,その表やインデクスが使用できなくなります。詳細は,「制限事項」を参照してください。