如何为许多用户的网站生成唯一代码

时间:2016-05-31 02:58:41

标签: mysql database postgresql

我有功能请求

  1. 代码是一个独特的列
  2. 我的用户将生成超过100个代码一个请求
  3. 用户将同时生成代码。
  4. 代码需要随机数
  5. 我可以逐个生成代码,但效率不高。问题是很多用户会在同一时间使用,我可以'生成批量插入,代码可能会发生冲突。

    这是一个糟糕的设计吗?

    顺便说一句,我的数据库是mysql,我可以切换到postgresql

2 个答案:

答案 0 :(得分:0)

我认为您要求您同时插入来自不同用户的记录1 - 100。您可以使用事务性插入伪代码编写一个给出字符串参数列表的存储过程:

数据,DATA2,DATA3 ... 开始反式 将每条记录插入到具有唯一ID的表中,该ID是一个标识(索引计数器) 提交

这可能是你想要的。

答案 1 :(得分:0)

如果您使用PostgreSQL并且您的用户总是会生成100个代码,那么您可以使用一个简单的序列,然后添加任意两个数字:

CREATE SEQUENCE id_template;

-- get 100 new IDs:
SELECT idt + s AS id
FROM (SELECT nextval('serial') * 100 idt) idt, -- takes only one value
     generate_series(0, 99) s; -- adds two digits