1

私はテーブルを持っています:

id  parent  name

現在、親フィールドは他の行の ID です。MySQLが言うように、私はそのためにトリガーを使用できません:

このストアド関数/トリガーを呼び出したステートメントで既に使用されているため、ストアド関数/トリガーのテーブル 'products_categories' を更新できません。

削除されたIDのような親を持つすべての行を削除する手順はどのように見えるべきですか?

4

1 に答える 1

0

プロシージャを再帰的に呼び出すことができます。この手順では、次のことを行う必要があります。

  • parent値を変数に読み込む
  • レコードを削除します (その によってid)
  • parent値が NULL でない場合 - プロシージャを再度呼び出し、IN 引数として値を渡しますparent

サーバー変数max_sp_recursion_depth - ストアド プロシージャがそれ自体を呼び出す回数を確認します。

于 2012-05-21T12:45:25.157 に答える