我想在一个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

但是似乎已经在该表上附加了一个触发器,所以新的触发器引起了冲突,直到我将其删除之前,一切都停止了。 关于如何使用另一种方法完成相同的任何想法?

===============>>#1 票数:1

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

如果您要对表进行单个插入,则可以执行以下操作:

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

换句话说,您不必连续从一个表中删除并移至另一个表。 您可以选择插入不存在的值。 如果需要考虑性能,则在这种情况下索引会有所帮助。

===============>>#2 票数:0

您很有可能需要研究一下触发器。 例如,在表中插入记录后,您可以做一些事情。 请参阅此链接以获取更多详细信息。 http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

  ask by tk748 translate from so

未解决问题?本站智能推荐:

关注微信公众号