子テーブルとその親テーブルのレコードを削除したいのですが、これには問題があり、その親テーブルの間接的な子も削除する必要があります。
問題をより理解するために、例を挙げてみましょう。
私のデータベースは非常に構造的であり、すべてのテーブルがテーブルで始まる従業員データのように、いくつかのプレフィックスに関連付けられた特定の名前があります
Emplyee*
。各モジュールには、テーブルの同じプレフィックス セットがあります。雇用主が提供されている場合、提供されたタイプに基づいてデータを削除する必要があるテーブルのセットがほぼ 20 セットあります。雇用主とその従業員、および従業員が選択した製品のデータを削除する必要があります。
Employer_Details
には、すべての表とID
で参照される (PK) があります。製品と同じすべての表で参照される(PK) があります。Employer_*
Employee_MainTable
Employee_MainTable
employee_ID
Employee_*
そのため、Employer をテーブル名として、列名を ID として proc に渡すと、上記の条件に基づいてテーブル (Employer、Employee、および Product) からすべてのデータを削除する必要があります。Employee を渡すEmployee_*
と、Product_*
テーブルからデータが削除されます。
少し始めましたが、簡単にするために専門家のコメントが必要です。テーブル名については言及したくありません。代わりに、列の順序番号をもう 1 つ持つ参照に基づいてすべてのテーブルを取得する動的クエリが必要なので、順序番号に従って削除します。
これらのテーブルは既存のものであり、変更できないため、カスケード削除はありません。Information_Schema.Tablesは動的を意味します。
複雑すぎないことを願っています!! ありがとう!!