スケーラブルデータベースサーバ HiRDB Version 8 システム導入・設計ガイド(Windows(R)用)
(1) 検査制約を定義する表の制限事項
検査制約を定義する表の表定義,及び表定義変更時の制限事項を次に示します。
(a) 表定義(CREATE TABLE)時
- 検査制約は改竄防止表には定義できません。
- 検査制約は一つの表に254個まで定義できます。255個以上は定義できません。例を次に示します。
この場合,検査制約数が254個より多いため,定義できません。表定義時にエラーとなります。
- 検査制約,及び各検査制約の探索条件中のAND,ORの個数の和は一つの表に254個まで定義できます(ただし,CASE式中の探索条件,及びその探索条件中のAND,ORの個数は除きます)。例を次に示します。
この場合,検査制約数は2個ですが,制約名CHECK_T1_C1の探索条件中のANDの数が200,制約名CHECK_T1_C2の探索条件中のANDの数53で,検査制約数と各検査制約の探索条件中のAND,ORの和が255(2+200+53)となり,254個より多いため定義できません。表定義時にエラーとなります。
なお,表に定義されている検査制約数と各検査制約の探索条件中のAND,ORの和はディクショナリ表のSQL_TABLE表の,N_CHECK_LIMIT列に格納されています。
(b) 表定義変更(ALTER TABLE)時
- 検査制約表に対して,DROP句及びRENAME句を使用した表定義変更はできません。
- 検査制約表に対して,CHANGE句を使用した次の変更はできません。
- データ型やデータ長の変更
- SPLITの変更
- 既定値の設定,解除
- WITH DEFAULTの設定
- 検査制約表に対して,RENAME句を使用した列名変更はできません。
(2) 検査制約を定義する場合の注意事項
- SQLオブジェクト用バッファ長の容量見積もり
検査制約表に対して操作する場合,HiRDBが制約条件をチェックするトリガを生成します。そのため,SQLオブジェクト用バッファを指定するときにHiRDBが生成する制約条件のSQLオブジェクトについても考慮する必要があります。SQLオブジェクト用バッファ長(pd_sql_object_cache_size)の見積もり式については,マニュアル「HiRDB Version 8 システム定義」を参照してください。
- バックアップの取得
バックアップ取得時点の検査保留状態によって,バックアップの取得範囲が異なります。バックアップの取得時点と取得範囲については,マニュアル「HiRDB Version 8 システム運用ガイド」の「同時にバックアップを取得する必要があるRDエリア」を参照してください。
- データディクショナリ用RDエリアの再編成
検査制約表の定義と削除を繰り返すと,データディクショナリ用RDエリアの格納効率が低下します。このような場合,データベース状態解析ユティリティ(pddbst)でデータディクショナリ用RDエリアの格納効率を確認し,必要に応じて再編成してください。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.