MySQL 内のあるテーブルから別のテーブルにデータをコピーするスケジュールされたイベントが空の結果を返す
P粉615886660
P粉615886660 2023-09-09 09:47:01
0
1
656

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粉615886660
P粉615886660

全員に返信(1)
P粉092778585

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

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

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

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

が必要です。 リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート