スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(Windows(R)用)
検査保留状態に関する設定をします。
検査制約又は参照制約を定義した表にデータロードする場合,pdloadではデータの整合性チェックをしないため,制約の整合性が保証できないデータを格納する可能性があります。このとき,pdconstckで整合性を検証するまで,表へのデータ操作を制限させるため,データロード対象表やその表に関係する参照表を検査保留状態に設定します。
なお,ユーザ自身が制御文を指定して,表の検査保留状態を変更しないこともできます。検査保留状態については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。
constraint 〔pending=no〕 〔ref_pending=no〕 |
参照表又は検査制約表にデータロードする場合,その表の検査保留状態を変更しないときに指定します。このオペランドを省略した場合の仮定値は,「(4)検査保留状態の設定範囲」を参照してください。
被参照表にデータロードする場合,その表に関係する参照表の検査保留状態を変更しないときに指定します。このオペランドを省略した場合の仮定値は,「(4)検査保留状態の設定範囲」を参照してください。
検査制約の検査保留状態の設定範囲を表5-11に示します。また,参照制約の検査保留状態の設定範囲を表5-12に示します。
表5-11 検査制約の検査保留状態の設定範囲
データロード実行条件 | 検査制約の検査保留状態 | |||
---|---|---|---|---|
システム定義のpd_check_pendingオペランドの値 | 実行単位 | ディクショナリ表 | RDエリア中の表情報 | |
SQL_TABLES表CHECK_PEND2列 | SQL_CHECKS表CHECK_PEND2列 | 検査制約の状態 | ||
USE | 表 | ● | ● | ◎ |
RDエリア | ● | ● | ○ | |
NOUSE | 表 | × | × | × |
RDエリア | × | × | × |
表5-12 参照制約の検査保留状態の設定範囲
データロード実行条件 | データロード対象表 | |||||||
---|---|---|---|---|---|---|---|---|
システム定義のpd_check_pendingオペランドの値 | -dオプションの指定 | 実行単位 | 被参照表 | 参照表 | ||||
被参照表に関連する参照表の検査保留状態 | 参照表の検査保留状態 | |||||||
ディクショナリ表 | RDエリア中の表情報 | ディクショナリ表 | RDエリア中の表情報 | |||||
SQL_TABLES表CHECK_PEND列 | SQL_REFERENTIAL_CONSTRAINTS表CHECK_PEND列 | 参照制約の状態 | SQL_TABLES表CHECK_PEND列 | SQL_REFERENTIAL_CONSTRAINTS表CHECK_PEND列 | 参照制約の状態 | |||
USE | あり | 表 | ● | ● | ◎ | ● | ● | ◎ |
RDエリア | ● | ● | ◎ | ● | ● | ○ | ||
なし | 表 | × | × | × | ● | ● | ◎ | |
RDエリア | × | × | × | ● | ● | ○ | ||
NOUSE | あり | 表 | × | × | × | × | × | × |
RDエリア | × | × | × | × | × | × | ||
なし | 表 | × | × | × | × | × | × | |
RDエリア | × | × | × | × | × | × |
次に示す表T1〜T5について,constraint文のpending及びref_pendingオペランドを指定した場合の,表の検査保留状態の設定可否について説明します。
表T1〜T5に対してデータロードを実行した場合の表の検査保留状態を次の表に示します。
表5-13 データロードを実行した場合の表の検査保留状態
データロード対象表と制約定義有無 | constraint文のオペランドの指定有無 | 表の検査保留状態 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
表名 | 参照制約 | 検査制約 | pending | ref_pending | T1 | T2 | T3 | T4 | T5 | |
被参照表 | 参照表 | |||||||||
T1 | ○ | × | × | なし | なし | − | P | − | − | − |
あり | − | N | − | − | − | |||||
あり | なし | − | P | − | − | − | ||||
あり | − | N | − | − | − | |||||
T2 | ○ | ○ | × | なし | なし | − | P | P | − | − |
あり | − | P | N | − | − | |||||
あり | なし | − | N | P | − | − | ||||
あり | − | N | N | − | − | |||||
T3 | × | ○ | × | なし | なし | − | − | P | − | − |
あり | − | − | P | − | − | |||||
あり | なし | − | − | N | − | − | ||||
あり | − | − | N | − | − | |||||
T4 | × | × | ○ | なし | なし | − | − | − | P | − |
あり | − | − | − | P | − | |||||
あり | なし | − | − | − | N | − | ||||
あり | − | − | − | N | − | |||||
T5 | × | × | × | なし | なし | − | − | − | − | − |
あり | − | − | − | − | − | |||||
あり | なし | − | − | − | − | − | ||||
あり | − | − | − | − | − |
データロード対象表やその表に関係する参照表の検査保留状態を設定するタイミングは,データロードのモードによって異なります。データロードのモードと検査保留状態に設定するタイミングの関係を次の表に示します。
表5-14 検査保留状態に設定するタイミング
データロードのモード | 検査保留状態を設定するタイミング |
---|---|
作成モード | データ削除処理を開始する前 |
追加モード | データロードを開始する前 |
なお,表の検査保留状態を設定した後,エラーの発生などによってpdloadがロールバックした場合でも,表の検査保留状態の設定は完了(コミットが完了)しているため,表は検査保留状態となります。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.