0

特定の ID に割り当てられた特定のキーを含むテーブルのトリガーを作成しようとしています。

これが私がやろうとしていたことです:

CREATE TRIGGER expirationDateCheck
BEFORE UPDATE ON sp
FOR EACH ROW
BEGIN
IF DATE_ADD(OLD.date,INTERVAL 10 DAY) > CURDATE() THEN
SET OLD.sid=0,OLD.cid=0
END IF
END

基本的に、何かがspテーブルに入れられるたびに、最初にテーブルを調べて、現在の日付が行に割り当てられた日付から10日以上経過している行を見つけ、それらのsidとcidを0に設定します.

これどうやってするの?

4

2 に答える 2

0

これをトリガーで実行したくありません。やりたいと思うかもしれませんが、それはトリガーの目的ではありません。乱用してはいけない理由はたくさんありますが、特に悪用すると噛まれるからです。

おそらく、行を更新したくないでしょう! let me update the rows over 10 days oldと言う代わりに、 10 日以上経過した行について、それらの列をゼロとして返す (またはそのような行を削除するなど) ビューを作成します。これにより、定期的なメンテナンスと不要な I/O を節約し、実際の真のデータを保持し、10 日間のチェックのためにテーブルが最後に更新されたのはいつかという問題を解決します。

于 2013-05-13T05:39:12.897 に答える