Mysql 在创建新记录时向表中插入随机数

Mysql 在创建新记录时向表中插入随机数,mysql,sql,random,Mysql,Sql,Random,我想在一个MySql表中存储随机数,在每次创建新记录时随机检索一个并将其插入另一个表列。我想在使用随机数表时删除检索到的数字 随机数是3位数,有900个 我在这里读过几篇文章,它们描述了使用唯一随机数并触发其插入的问题。我想使用这种方法,因为它似乎是可靠的,而产生的问题很少 这里有人能给我举一个sql查询的例子来完成上述任务吗?(如果sql查询不是推荐的方法,请随意推荐更好的方法。) 谢谢你能给我的帮助 我把这两个建议放在一起,并尝试了这个触发和查询: CREATE TRIGGER rand_n

我想在一个MySql表中存储随机数,在每次创建新记录时随机检索一个并将其插入另一个表列。我想在使用随机数表时删除检索到的数字

随机数是3位数,有900个

我在这里读过几篇文章,它们描述了使用唯一随机数并触发其插入的问题。我想使用这种方法,因为它似乎是可靠的,而产生的问题很少

这里有人能给我举一个sql查询的例子来完成上述任务吗?(如果sql查询不是推荐的方法,请随意推荐更好的方法。)

谢谢你能给我的帮助

我把这两个建议放在一起,并尝试了这个触发和查询:

CREATE TRIGGER rand_num before 
INSERT ON uau3h_users FOR EACH ROW 
insert into uau3h_users (member_number) 
select random_number from uau3h_rand900 
where random_number not in (select member_number from uau3h_users) 
order by random_number 
limit 1

但是,似乎已经有一个触发器附加到该表上,因此新的触发器会导致冲突,直到我将其删除,事情才开始工作。关于如何使用另一种方法实现相同的功能,您有什么想法吗?

您很可能需要研究触发器。您可以做一些事情,例如在表中插入一条记录之后。请参阅此链接以了解更多详细信息。

您很可能需要查看触发器。您可以做一些事情,例如在表中插入一条记录之后。请参阅此链接以了解更多详细信息。
您只处理900条记录,因此性能不是主要问题

如果要在表中执行单个插入,可以执行以下操作:

insert into t(rand)
    select rand
    from rand900
    where rand not in (select rand from t)
    order by rand()
    limit 1

换句话说,您不必不断地从一个表中删除,然后移动到另一个表中。您可以选择插入不存在的值。如果性能是一个问题,那么索引在这种情况下会有所帮助。

您只处理900条记录,因此性能不是一个主要问题

如果要在表中执行单个插入,可以执行以下操作:

insert into t(rand)
    select rand
    from rand900
    where rand not in (select rand from t)
    order by rand()
    limit 1

换句话说,您不必不断地从一个表中删除,然后移动到另一个表中。您可以选择插入不存在的值。如果性能是一个问题,那么索引在这种情况下会有所帮助。

每次有人注册事件时,都会在用户表中创建新记录。将为每个新用户分配一个随机数,以供以后使用。我需要确保不分配重复的号码,因此需要从池中删除分配的号码。当您用完所有号码时,您的计划是什么?这些号码可以在不同的事件中重复使用,因此不会出现问题。我要感谢那些已经提出建议的人。非常感谢。每次有人注册事件时,都会在用户表中创建新记录。将为每个新用户分配一个随机数,以供以后使用。我需要确保不分配重复的号码,因此需要从池中删除分配的号码。当您用完所有号码时,您的计划是什么?这些号码可以在不同的事件中重复使用,因此不会出现问题。我要感谢那些已经提出建议的人。非常感谢。谢谢你的参考。请参阅以上评论,了解我对该信息所做的操作。感谢您提供触发参考。请参阅以上评论,了解我对该信息所做的操作。