仅当记录的时间戳超过5分钟时才插入MySQL

仅当记录的时间戳超过5分钟时才插入MySQL,mysql,Mysql,我试图在我的查询中实现的是: 用户可以将他们的手机号码存储在我的数据库中,如果插入了相同的手机号码,它将检查是否已过5分钟,如果有,它将存储相同号码的另一条记录,如果没有,它将不存储该记录。我的数据库中的列是:Name、contact和datetimestamp 我玩过的和写过的: INSERT INTO users (name, contact) SELECT * FROM (SELECT 'test', '123') AS 1 WHERE NOT EXISTS ( SELECT time F

我试图在我的查询中实现的是:

用户可以将他们的手机号码存储在我的数据库中,如果插入了相同的手机号码,它将检查是否已过5分钟,如果有,它将存储相同号码的另一条记录,如果没有,它将不存储该记录。我的数据库中的列是:Name、contact和datetimestamp 我玩过的和写过的:

INSERT INTO users (name, contact) SELECT * FROM (SELECT 'test', '123') AS 1 WHERE NOT EXISTS ( SELECT time FROM users WHERE time <= now() + INTERVAL 5 MINUTE ) LIMIT 1

这将始终无法将记录保存到数据库中,因为时间总是考虑以下因素。。。我用了1分钟,因为测试更快

drop table if exists my_table;

create table my_table
( id serial primary key
, number varchar(12) not null
, dt datetime not null
);

insert into my_table
select null
     , '1111'
     , now()
  from (select 1)x
  left
  join my_table y
    on y.number = '1111'
   and y.dt >= now() - interval 1 minute
 where y.id is null
 limit 1;

你的意思是它不允许在重复号码的5分钟内存储一个号码吗?相同的号码不能在这5分钟内存储,如果这5分钟过去了,那么相同的号码可以再次存储是我试图实现的目标。此外,如果使用不同的编号,则会将其插入数据库,因为不存在此不同编号的现有记录。