TRUNCATE 時の参照制約に注意

989 views

大量データの投入テスト後、再テストのためなどにデータの消し込みを行う場合、トランザクションログを出力させない TRUNCATE コマンドが便利です。
実際に高速でデータの削除が行えるため、すごく便利なコマンドなのですがマニュアルの「規則」の項に以下の記載があります。

参照整合性: 参照制約が適用される場合、表、および表階層内のすべての表は、親表であってはなりません (SQLSTATE 428GJ)。自己参照 RI 制約は許可されます。

https://www.ibm.com/support/knowledgecenter/ja/SSEPGG_11.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0053474.html

つまり外部参照制約の親表であってはダメという事なのですが、これってなかなかの制限ですよね。
子表との制約にずれが生じてしまうので仕方ないのですが、大量データの投入テスト時とかあまり気にしてませんよね?

今後参照制約を無視できるオプションとかできると嬉しいです。

関連記事

コメントを残す

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

CAPTCHA