外部キー制約のあるテーブルの削除について
ドキュメントを探しましたが、よくわからないため、質問させてください。
DB のテーブル (alerts テーブルなど) は外部キー制約が多く設定している場合、
手動でレコードを削除する際、他テーブルからも関連するデータが併せて削除されますでしょうか。
※システム要件で手動でレコードを削除する必要があります。
なお他テーブルと関連しているデータも削除されても問題ない環境です。
MySQL、PostgreSQL だと、「ON DELETE CASCADE」を設定して、親テーブルを削除すると子テーブルが自動的に削除されます。
デフォルトは「NO ACTION」の場合、親テーブルに対して削除を行うとエラーが発生します。
もし冒頭の質問の回答は「YES」の場合、zabbix は「ON DELETE CASCADE」を
付けて外部キー制約を行なっているということでしょうか。
参考できる URL があればもお願いします。
zabbix 3.0 を使用しています。
fripper - 投稿数: 495
DBにおける外部制約と、自動削除等の動作は、Zabbix に限らない話かと思います
ZabbixでのDB・テーブル定義等は確認されましたでしょうか?
Zabbix におけるDB・テーブルの定義は、ソースコードの zabbix-x.x.x.tar.gz 内の
database/postgresql/schema.sql
等(ディレクトリはDBによって異なる)に記載されており
Create table のほか、ご質問にある「ON DELETE CASCADE」による外部制約の追加などが
すべて記載されています
実際にDelete等のSQLを実行した場合の挙動についても、定義されている外部制約の
とおりとなります。
各テーブルの依存関係をご確認ください
hellozabbix - 投稿数: 21
コメントありがとうございます。
SQLファイルを確認して、問題解決しました。
ありがとうございました。