次の現象について聞いた、または経験した人はいますか?
Windows で postgresql 9.0.5 を使用する
= テーブル構造 =
[親] - [子] - [孫]
[子] テーブルに奇妙なレコードが残っていることがわかりました。このレコードは、外部キーの制限に違反して存在します。
- これらのテーブルには、アプリケーションのトランザクション データが格納されます
- 上記のすべてのテーブルには、数値の PRIMARY KEY があります
- これらすべてのテーブルには FOREIGN KEY 制限があります (親と子、孫の間)
- 私のアプリケーションは、トランザクションの進行状況とともに各レコードのステータスを更新します
- すべてのステータスが「normal_end」に変更されると、アプリはこのレコードをアーカイブ テーブル (同じ構造、同じ制限) にコピーします。
次に、アーカイブ テーブルへのコピーが完了したら、これらのレコードを削除します。
[子] テーブルに残っているレコードのステータスは、「正常終了」ではなく「処理中」でした。しかし、アーカイブテーブルにコピーされたデータ (同一 ID) のステータスは "normal_end" でした。
- pg_log にエラーは報告されていません
なんとも不思議な感覚でした…削除したデータが復活したのではないでしょうか!? 削除されたデータが予期せずアクティブになることはありますか?