Linux サーバーで動作する DB2 の特定のスキーマの下にあるすべてのテーブルを切り捨てたいと考えています。しかし、ALTER TABLE を使用して外部キー制約を無効にする権利はありません。
とにかくこれを行うことはありますか?
テーブル間の制約に基づいてトポロジ ソートを実行することを検討していますが、少し複雑です。
この問題について何か良いアイデアはありますか?
どのプラットフォームにいるのかは言いません。この回答は、Linux、UNIX、および Windows 上の DB2 に固有のものです。
テーブルに対する LOAD、INSERT、および DELETE 権限がある場合は、外部キー制約があるかどうかに関係なく、空のファイルで LOAD コマンドを使用してテーブルを切り捨てることができます。
LOAD from /dev/null of del replace into yourschema.yourtable nonrecoverable
これにより、すべての従属テーブルがチェック保留状態になります... すべてのテーブルを切り捨てたら、SET INTEGRITY
ステートメントを使用してすべてのテーブルをチェック保留状態から外します。