MySQL在3分钟后发送消息

MySQL在3分钟后发送消息,mysql,Mysql,在我的网站上,用户可以互相发送消息。私人消息是可能的。这些都托管在消息表中。 我想发送一个私人消息给每一个新用户谁是该网站的成员。为此,只需在_message表中创建一个条目 INSERT INTO message(from_user_id, to_user_id, text, created_at) SELECT user.id, new.id, "selam", created_at FROM user WHERE username = "admin" 到目前为止一切顺利。但我希望这

在我的网站上,用户可以互相发送消息。私人消息是可能的。这些都托管在消息表中。

我想发送一个私人消息给每一个新用户谁是该网站的成员。为此,只需在_message表中创建一个条目

 INSERT INTO message(from_user_id, to_user_id, text, created_at)
 SELECT user.id, new.id, "selam", created_at FROM user WHERE username = "admin"
到目前为止一切顺利。但我希望这条信息在2分钟后发送给用户。我怎么能做到这一点。请给我一个代码示例

简言之

我希望在用户注册到站点2分钟后将一个条目添加到_message表中

我只能这样做。我无法向添加到_user表中的最后一个用户发送消息,以便在3分钟后转发

 CREATE EVENT message
ON SCHEDULE EVERY 1 MINUTE STARTS
DO
INSERT INTO message(from_user_id, to_user_id, text, created_at) SELECT user.id, new.id, "selam", created_at FROM user WHERE username = "admin"

user
表需要有一列,其中包含创建帐户的时间。然后可以在计划查询中测试该列

您需要自行加入
user
表,以便获得新用户和管理员用户的ID

CREATE EVENT message
ON SCHEDULE EVERY 1 MINUTE STARTS
DO
INSERT INTO message(from_user_id, to_user_id, text, created_at) 
SELECT admin.id, new.id, "selam", UNIX_TIMESTAMP(NOW())
FROM user AS admin
CROSS JOIN user AS new
WHERE TIMESTAMPDIFF(MINUTE, NOW(), FROM_UNIXTIME(new.creation_time)) == 2
AND admin.username = "admin"

您可能希望使用每分钟检查一次的cron作业,以查看是否有超过2分钟前创建的用户收到了欢迎消息,因为您确实将
created_存储在
用户表中。或者,如果您可以将收件箱配置为仅显示过去创建的邮件,您可以选择将来的时间,以便邮件在该时间之前不会“传递”。您可以为我创建一个示例代码吗?您可以使用MySQL事件调度器,你不需要使用cron。@barmar你能给我写一个简短的例子吗?@barmar我更新了我的帖子。这就是我所能做的。因为我想要的示例不在Internet上。您能通过查看用户表最后一次编辑代码吗?我该怎么做呢@barmarI添加了转换为Unix时间戳格式的函数。