DB2 2 min read

TRUNCATE 時の参照制約に注意

大量データの投入テスト後、再テストのためなどにデータの消し込みを行う場合、トランザクションログを出力させない 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

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

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

この記事のような現場のTIPSを、Db2運用の全体像として12章に体系化しました。公式マニュアルには載らない「あのとき知っていれば」を減らすための1冊です。

現場で引ける Db2 の教科書

現場で引ける!Db2実践エンジニア・バイブル

Db2はRDBMS市場でシェア数%。情報が少なく、頼れるのは膨大な公式マニュアルだけ―― そんな現状を変えたくて、「なぜこの値にするのか」「この障害のとき次に何を見るのか」という、マニュアルに載っていない現場の文脈を1冊にまとめました。書いてあることはすべて実際の現場で経験したことです。

アーキテクチャ/構成パラメーター選定/セキュリティ/バックアップ・リカバリ/HADR/pureScale/日常点検の自動化/メモリ・ロック競合/SQLチューニング/RUNSTATS・REORG/MON_GET監視/現場の難題集 ―― 全12章+運用シェルスクリプト集

Zennで読む(¥2,000)→

コメントを残す

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

CAPTCHA