-1

DELETE顧客がステートメントを実行したいデータベースがあります。ただし、データベース側では、レコードを削除するのではなく、非表示にする必要があります。

レコードを削除する代わりにフラグをBEFORE DELETE TRIGGER変更するためにa を使用できますか?visiblityfalse

4

1 に答える 1

1

MySQL でこれを行う唯一の方法は (Alex Monthy がほのめかしたように、実際にこのロジックが属する場所ですか?) 、フラグを false に設定してレコードを再挿入するafter delete トリガーを使用することだと思います。visibility

CREATE TRIGGER foo AFTER DELETE ON my_table FOR EACH ROW
  INSERT INTO my_table (visibility,     colA,     colB,     colC)
                VALUES (     false, OLD.colA, OLD.colB, OLD.colC);

before トリガーから削除操作を中止することはできますが(存在しないプロシージャを呼び出すなど、トリガーでエラーを発生させるだけです)、visibilityフラグを必要に応じて更新することはできません。

于 2012-05-08T00:32:20.800 に答える