問題タブ [cascading-deletes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6434 参照

grails - Grails - カスケード削除を伴う同じクラスの複数の belongsTo

これは Grails ユーザー向けです。私は grails - ユーザーのメーリング リストで質問しましたが、数日間これと戦ってきたので、可能な限り広いネットをキャストする必要があると考えました。

2 つのオブジェクトを参照する別のオブジェクト (異なる型) で同じ型の 2 つのオブジェクト間の関係をモデル化しようとすると、いくつかの問題が発生します。

私がやろうとしていることの例として、家族間の関係をモデル化しているとします。与えられた関係は、2 つの異なる家族メンバーに「属する」ものです。そう:

ここでの意図は、p1 または p2 のいずれかが削除された場合、その削除が hasMany マップ内のすべての Relationship オブジェクトにカスケードされることです。代わりに、試行するたびに、外部キー違反が発生します。ドキュメントで説明されているように、「カスケード」属性を使用してみました:

http://grails.org/doc/1.0.x/guide/single.html#5.5.2.9%20Custom%20Cascade%20Behaviour

そこで、これを Person クラスに追加することにしました。

私もそれで運がありませんでした。

また、Grails が生成する devDB.script ファイルを調べて、Relationship で外部キーがどのように設定されているかを確認しました。「ON DELETE CASCADE」を両方の外部キー制約に手動で追加すると、問題なく動作しますが、自動生成されたデータベース スクリプトを手動で編集することは、最も堅牢なソリューションではありません。理想的には、GORM を使用してその動作を指定できるようにしたいと考えています。

それで、ここで私の最善の策は何ですか?複数の外部キー/所有者に対してカスケード削除を強制する方法はありますか? Person の onDelete アクションを使用して手動でこれを行う必要がありますか? これには Hibernate の設定を行う必要がありますか、それとも Grails/GORM で何らかの方法で行うことができますか?

お時間を割いていただき、またご提供いただけるご支援に感謝いたします。

0 投票する
3 に答える
14930 参照

sql-server - 多対多のテーブルにカスケード削除する方法

私はこのように見える3つのテーブルを持っています:( 出典:InsomniacGeek.com

外部キーにカスケード削除を設定しました。現在、Folderテーブルのレコードを削除すると、FolderItemの関連レコードのみが削除されます。

これは予想され、正しいことです。

私が達成したいのは、Folderテーブルのレコードを削除するときに、FolderItemとItemテーブルの対応するレコードを削除する必要があるということです。

どうすればこれを解決できますか?問題のFolderIDを持つItemのすべてのインスタンスを削除するトリガーを追加することによって?または、より良い解決策はありますか?

0 投票する
2 に答える
7152 参照

ruby-on-rails - Rails ActiveRecordで1対多の関係でカスケード削除を行うにはどうすればよいですか?

レールに one_to_many 関係のモデルがあります。父親を削除したら、すべての子供を削除したいと思います。どうすればいいですか?ユーザーを削除するときに、すべての注文とそのアイテムを削除したい

私のモデルは次のとおりです。

0 投票する
2 に答える
1535 参照

php - MySQL で階層データのカスケード削除を実装する方法は?

カテゴリ/サブカテゴリを持つプロジェクトに取り組んでいます。このためのデータベース テーブルは一意であり、次の構造になっています。

そのため、カテゴリが「ベース」の場合、parent_id は 0 であり、カテゴリに親がある場合は、親 ID を収集します。私が知りたいのはこれです:そのオプション、カスケードのような削除を選択するときに、上記のカテゴリに関連するすべてを削除する必要がありますが、このテーブルしかありません(外部キーはありません)。それ、どうやったら出来るの?(大量のクエリなしで。)

0 投票する
3 に答える
3900 参照

sql - SQLサーバー、カスケード削除、親/子テーブル

次の列を持つ1つの単純なテーブルがあります:id、name、parentID

単純なツリーのように、 idparentIDの間の関係図を同じテーブルに作成しましたが、ユーザーカスケード削除を試みたときに無効になりました

親を削除すると子が削除されるので、再帰的に削除されることはわかっています。

トリガーなしでカスケード削除できるオプションはありますか?

0 投票する
8 に答える
9698 参照

core-data - Core Data Relationship により、削除後に保存エラーが発生する

この質問はおそらくロングショットです。エンティティを削除した後に保存すると、コア データ プロジェクトで発生するエラーがわかりません。

私が扱っている主なエンティティは 2 つあります。衣装と記事です。問題なく作成できますが、削除すると次のエラー ログが表示されます。

衣装の場合:

記事を削除すると、次のようになります。

1600 エラーは次のとおりです。

NSValidationRelationshipDeniedDeleteError 削除ルール NSDeleteRuleDeny と
の関係を示すエラー コードが 空ではありません。

Mac OS X v10.4 以降で利用できます。

CoreDataErrors.h で宣言されています。

しかし、どの関係が削除を妨げているのか、一生わかりません。Core Data ウィザードが私の方法のエラーを確認できる場合、私は謙虚になります.

実際には解決していないため、これを解決済みとしてマークすることはできませんが、回避策があります。.mfor each に、次managedObjectsのようなメソッドを追加しました。

ご覧のとおり、最初に手動でリレーションシップを削除し、次にオブジェクト自体を削除します。他のオブジェクトではnil-ing、カスケードを取得するために、オブジェクトのリレーションシップの一部で私の delete メソッドが呼び出されます。

0 投票する
1 に答える
12959 参照

hibernate - REMOVEとDELETEの違いは何ですか?

間に違いはありますか:

  • @Cascade(org.hibernate.annotations.CascadeType.REMOVE)および
  • @Cascade(org.hibernate.annotations.CascadeType.DELETE)?
0 投票する
3 に答える
116 参照

sql - 削除クエリ実行時の DB ダウン

単純な削除クエリで DB がダウンする可能性はありますか?

削除クエリ (単一行の削除) を実行したところ、そのクエリがハングしました。複数の人が同じ削除を再度実行しようとすると、Oracle DB がダウンします。複数のテーブルがこのテーブルを参照しており、カスケード削除が使用されていません。カスケード削除を使用する必要がありましたか?

このSQLの実行時にDBがダウンする理由として考えられるものは何ですか?

0 投票する
1 に答える
868 参照

nhibernate - nhibernateで複数のレベルをカスケード削除しますか?

次のようにマッピングされた 3 レベルの深さのテーブルの階層があります (QualificationType には多くの Qualifications を持つ多くの QualificationGroups があります)。

資格グループを削除すると、それに関連するすべての資格が削除されます。しかし、資格タイプを削除しようとすると、関連するすべての資格グループが削除されますが、それらの資格は削除されません。

タイプを削除すると、すべてのグループとそのすべての資格が削除されるように、カスケードするにはどうすればよいですか? 最初にすべてのグループをループして削除する必要がありますか? これは、マッピングだけで処理できるはずです。

参考までに、Fluent NHibernate 1.0RTM と NHibernate 2.1 を使用しています。