Hitachi

ノンストップデータベース HiRDB Version 9 コマンドリファレンス(Windows(R)用)


9.3.4 参照制約を定義した表の搬出入の規則について

〈この項の構成〉

(1) 搬出

  1. 参照表,及び被参照表を搬出すると,無条件に主キー,及び外部キーの定義も搬出します。

  2. 表定義情報は,制御文ファイルに指定した順序に関係なく,HiRDBが搬出順序を決定して被参照表を先に搬出します。-vオプションを指定した場合は,制御文ファイルに指定した順序で搬出します。

  3. トリガ定義情報,又はストアドプロシジャ情報は,制御文ファイルに指定した順序で搬出します。

(2) 搬入

  1. 参照表,及び被参照表を搬入すると,無条件に主キー,及び外部キーの定義も搬入します。

  2. 搬入先に同一名称の制約がある場合,CREATE TABLEのSQLエラーとなります。この場合,次の表の処理をしないで,搬入処理を終了します。

  3. 主キー,並びにクラスタキーのインデクス番号,及び表番号は,搬入先で新たに割り当てられます。

  4. 主キーのインデクス識別子は,搬入時の表の表番号を基に決まります。したがって,搬出元と同じになるとは限りません。

  5. 参照表を搬入する場合の,被参照表を使用するSQLオブジェクトの扱いを次に示します。

    表定義時の参照動作

    -wオプション

    被参照表を使用するSQLオブジェクトの扱い

    備考

    CASCADE

    指定あり

    参照表と被参照表の整合性を保つために,内部的にトリガが定義されます。このとき,SQLオブジェクトが作成されるため,被参照表を使用する関数,手続き,及びトリガのSQLオブジェクトが無効になります。

    被参照表を使用する関数,手続き,及びトリガのSQLオブジェクトが既にある場合,そのSQLオブジェクトは無効な状態となっています。そのため,参照表を搬入した後に,SQLオブジェクトを再作成する必要があります。

    指定なし

    被参照表を使用する関数,手続き,及びトリガのSQLオブジェクトが無効になります。そのため,そのSQLオブジェクトを再作成しないと,参照表と被参照表の整合性が保たれないため,CREATE TABLEのSQLエラーとなります。

    RESTRICT

    指定あり

    被参照表を使用する関数,手続き,及びトリガのSQLオブジェクトが有効な場合,被参照表の行を更新又は削除してしまうため,整合性が保てなくなります。そのため,そのSQLオブジェクトは無効となります。

    被参照表を使用する関数,手続き,及びトリガのSQLオブジェクトが既にある場合,そのSQLオブジェクトは無効な状態となっています。そのため,参照表を搬入した後に,SQLオブジェクトを再作成する必要があります。

    指定なし

    被参照表を使用する関数,手続き,及びトリガのSQLオブジェクトが無効になります。そのため,そのSQLオブジェクトを再作成しないと,参照表と被参照表の整合性が保たれないため,CREATE TABLEのSQLエラーとなります。

    (凡例)−:特にありません。