フォーラムのトピックがゴミ箱にあるか、隠されている場合は削除し、別の場所に移動するとゴミ箱に移動します。問題は、 'before delete'トリガで削除アクションを停止する方法です。MySQLのトリガ:ゴミ箱に移動
1
A
答えて
2
何らかの例外を発生させずに既に呼び出されていれば削除を防ぐ方法があるかどうかはわかりません。
あなたがゴミ箱/削除するレコードで削除を呼び出す代わりに、より良い解決策があると思われます。「IsTrashed」などのフィールドをTRUEに更新する必要があります。次に、更新トリガーで、それが既にTRUEであったかどうかを確認し、再びTRUEに設定します(例:IF(OLD.IsTrashed && NEW.IsTrashed)
)。そうであれば削除し、そうでない場合はごみ箱に移動してください。
この方法で発生する唯一の問題は、ごみ箱アイテムの別のフィールド(PostDateなど)を更新すると、NEW.IsTrashedとOLD.IsTrashedが両方ともTRUEになり、削除しようとしているように見える場合ですそれはPostDateを更新するだけです。これが変更された唯一のフィールドであることを確認するか(たとえば、他のフィールドごとにOLD.SomeField <> NEW.SomeField
をチェックして)、UPDATEステートメントの後に常に値をNULLにリセットするフィールドを使用します。 "TrashNow"のようなもの。そうすれば、TrashNowの値がTRUEになっても、意図的にそのフィールドをゴミ箱に入れたいと思っていることがわかります。
CREATE PROCEDURE DeletePost (IN APostID INT)
BEGIN
IF ((SELECT InTrash FROM posts WHERE PostID = APostID LIMIT 1))
DELETE FROM posts WHERE PostID = APostID;
ELSE IF
UPDATE posts SET InTrash = TRUE WHERE PostID = APostID;
END IF;
END;
:ちょうどスペースを無駄にされた「フィールドがreseting」、私は...この問題に対する最善の解決策がstored procedureあるようなものを考えることが
、フィールドPostID(INT)およびInTrash(任意の整数型)。
あなたはPostID 123で投稿を削除するので、同じようにこれを呼び出します。
CALL DeletePost(123);
関連する問題
- 1. ファイルをゴミ箱に移動
- 2. ゴミ箱のソートアルゴリズム
- 3. ゴミ箱に移動した場所はどこですか?
- 4. ゴミ箱に移動して参照を削除する
- 5. AppleScriptを使用してメールメッセージをゴミ箱に移動する
- 6. MailKitを使用してメールをゴミ箱に移動
- 7. レールアプリのゴミ箱の実装
- 8. Mac OSでJXAでゴミ箱に送信
- 9. Sequelize - 私のモデルのゴミ箱の実装
- 10. Evernoteゴミ箱の内容を表示
- 11. C - ゴミ箱を開いて読む
- 12. ファイルを削除またはクリーンアップするときに、Aptana Studio 3ムーブファイルをゴミ箱に移動する方法は?
- 13. どのようにして、ゴミ箱のTNonblockingServerをJavaで起動しますか?
- 14. NSWorkspaceを使用してファイルをゴミ箱に移動すると復元できません
- 15. Javaのゴミ箱にあるsun.gc.tlab。*のTLABカウンタ
- 16. ゴミ箱でマルチサイトのカスタムフィールド値によってポストされた
- 17. ゴミ箱フォルダにアクセスするためのPython API
- 18. Ubuntuで空のゴミ箱に入っています
- 19. C#でGmailゴミ箱を空にするには
- 20. jqueryはソート可能、ゴミ箱オブジェクトにドラッグ可能
- 21. を追加してください。アイコンをボタンにゴミ箱
- 22. ゴミ箱にリサイクル+サイレント継続を追加する
- 23. ゴミ箱にwp_mailを送信できません
- 24. OS Xのメニュー項目を追加するゴミ箱のドックメニュー
- 25. ドック内のゴミ箱アイコンを変更する
- 26. Laravel 5.エラー:ゴミ箱と1つの関係を持つモデル。
- 27. 時間駆動型トリガーからGmailゴミ箱を削除する方法
- 28. MySQLのトリガ、トリガ
- 29. 端末でゴミ箱を実行できません
- 30. 1つのカスタム投稿タイプのWordPressゴミ箱を無効にする
ありがとうございました、これは私が望んでいたまさにありませんが、それは私が必要なものを行います:) – Thinker