こんにちは、私はMySQLのイベントとトリガーにまったく慣れていません。ユーザーがブロックされているかどうかに関係なく、ユーザーに関するデータを保存するために使用されるuserstatus(userid、timestamp、count、flag)というテーブルがあります。カウントが 4 に達すると、フラグは 0 (ブロックされます) になります。フラグが 1 時間ブロックされた後、フラグを自動的に 1 にリセットする方法を教えてください。次のコードを試しました:
create event testevent
on schedule
every 1 minute
starts CURRENT_TIMESTAMP
do
update demo.userstatus set flag=1
where timestampdiff(hour,timestamp,CURRENT_TIMESTAMP)>1
これは機能しているように見えますが、効率的ではありません。どんな助けでも大歓迎です。ありがとう!