ホームページ  >  に質問  >  本文

MySQL 内のあるテーブルから別のテーブルにデータをコピーするスケジュールされたイベントが空の結果を返す

phpMyAdmin ローカル サーバーで実行: user (データあり) と user_t (空) の 2 つのテーブルがあります。 これらの列名、順序、タイプは同じです (user_t テーブルには、入力にタイムスタンプを付けるための追加の列があります)。

スケジュールされたイベント を作成して、各ユーザー ログの タイムスタンプ に特定の値があるかどうかを確認し、存在する場合はそれを にコピーしたいと考えています。 user_t user からも削除します。とてもシンプルです。

削除は正常に機能します。問題を引き起こしたのは、

INSERT INTO user_t SELECT * FROM user WHERE user.reg < CURRENT_TIMESTAMP - INTERVAL 3 MINUTE; でした。 < CURRENT_TIMESTAMP - INTERVAL 3 MINUTE;

これはイベントの作成に使用するコードです: リーリー

ただし、

空の結果が返され続けます。それで、私は何か間違ったことをしているに違いないと思いました。 このコードが機能するよう誠心誠意お手伝いさせていただけますか?結局のところ、これはチュートリアルのものなので、問題ないはずです。

コードを使用してみたり、

トランザクション を調べたりすることも検討しましたが、この種の操作には大きすぎるようです。 ###編集###

そこで、nbk のコードを試してみた後、最終的にそれを理解しました。これが私にとってうまくいったコードです (誤解を招かないように、テーブル名と列名を一般化しました):

リーリー

将来、私のような人々に役立つことを願っています。 nbkさんの迅速な対応に改めて感謝いたします。ありがとうございます、もちろんあなたの答えは正しいです。

P粉615886660P粉615886660407日前587

全員に返信(1)返信します

  • P粉092778585

    P粉0927785852023-09-10 00:57:50

    イベントを 1 分ごとに実行し、最後の 3 分間を入力したいとします。それほど多くの新しい挿入があるのか​​、Python スクリプトが必要なのか、このように 1 時間挿入する必要があるのか​​わかりません。 ==>テスト目的で、頻度を 1 分に設定しました...

    イベントをオーバーライドする必要があります。

    まず、本当に重複が必要ですか。制約に違反した場合に新しい行を入力する INSERT IGNORE が考えられます。

    第二に、複数のステートメントがある場合は、BEGIN END

    が必要です。 リーリー

    返事
    0
  • キャンセル返事