私のアプリケーションからレコードを削除すると、テーブルのいくつかのレコードが保持されます。作成方法を理解するための助けが必要です親テーブルからすでに削除されている子テーブルからレコードを削除するプロシージャ親テーブルにないときに子テーブルからレコードを削除するプロシージャを作成します
-2
A
答えて
0
一般的にあなたの質問に対する回答は、存在量の数値化として知られています。しかし、あなたはその位置で取得することになっていない
delete from C where not exists (
select 1 from P
where P.child_key = C.key
)
:SQLでは、フォームを持っていることは、子供が親を持たない場合であってはなりません。子テーブルには、には親の存在がであると宣言された外部キーが必要です。この方法では、挿入する子の親と親の子であるは、子を参照している間に削除することはできません。
このような外部キー制約が存在する場合、イベントの唯一の許容順序は、最初に子の子を削除してから親のwhere exists
のキーを削除することです。正確さのために、2つのステートメントはトランザクションの一部でなければなりません。
一部のコメントでは、宣言参照整合性(DRI)を使用して子行を削除することを推奨しています。私はファンではない。私はDRIを制約の形として使用してルールを作成します。データの処理については、明示的なコードをお勧めします。このコードでは、アプリケーションレベルでの驚きをより簡単に処理できます。
0
ひどく整理されたDBで発生するので、データをクリーンアップする必要があります。
delete childTable where FK_field not in (
select PK_field from parentTable)
今後この問題を回避するには、childTableのFK制約を作成してください。
関連する問題
- 1. 親レコードが削除されたときに子レコードを削除しない
- 2. ON DELETE CASCADEを、レコードが親テーブルの上に削除することができますが、親テーブルが
- 3. 親テーブルと子テーブルを同じテーブルにコピーしますか?
- 4. CTEと物理的にテーブルからレコードを削除する
- 5. 新しいテーブルを作成するときにSqliteが自動的に古いテーブルを削除しました
- 6. 同じ接続オブジェクトを使用して親テーブルと子テーブルを削除する
- 7. Ruby/Rails - 子レコードを作成するときに暗黙的に親レコードを作成しますか?
- 8. memsqlテーブルから古いレコードを自動的に削除できますか?
- 9. oracleウェアハウス・テーブルから1Bnレコードを削除
- 10. Google App Engineテーブルからレコードを削除
- 11. スライドをテーブルからレコードを削除するには
- 12. MySQL、削除カスケードで子テーブルを削除できますなぜONにしないのですかUpdate Cascadeは子テーブルを更新しませんか?
- 13. 親子テーブルにレコードを挿入して選択します
- 14. MySQLテーブルから別のテーブルにあるレコードを削除する方法
- 15. テーブルから他のテーブルに存在しないデータを削除
- 16. 複数の子テーブルによって参照される親テーブルからレコードを削除するにはどうすればよいですか?
- 17. 巨大なMySQLのinnoDBテーブルからレコードを削除する
- 18. 条件を満たすときに接続テーブルからレコードを削除
- 19. "テーブルから削除"テーブルを削除しませんか?
- 20. 複数のテーブルからMySQLレコードを削除すると、正常に動作しない
- 21. pl/sqlプロシージャで完全なテーブルを削除して削除する:ORACLE
- 22. 子レコードに基づく親テーブル
- 23. 電子メールvbaからテーブルを削除
- 24. 非存在テーブルのビューとプロシージャを作成しますか?
- 25. jQuery親テーブルにIDを追加してからTDを削除します。
- 26. 子テーブルを制約する親テーブルに制約をどのように作成しますか?
- 27. プロシージャ内でテーブルを作成
- 28. 複数のテーブルから同時にレコードを削除しますか?
- 29. テーブルを作成するPL/SQLプロシージャ
- 30. エンティティフレームワークを使用してベーステーブルから削除せずにテーブルを削除せずにテーブルを削除する
もっと多くの情報が必要...テーブル構造はどのように見えますか?いくつかのサンプルデータを提供できますか?あなたはすでに試みたクエリとは何ですか?私たちは魔法のようにあなたがしようとしていることを知らずに答えを与えることはできません。 – Siyual
は、「外部キーの制約」と「カスケードの削除」について聞いたことがありますか? –
あなたはCASCADEをお探しですか? – techspider