在MySql中生成随机且唯一的varchar(n)?

时间:2011-12-19 17:34:42

标签: mysql

在我的应用程序中,我想向数据库表中的每条记录添加一个必须唯一且随机生成的代码(因此用户无法预测)。我假设通过代码(java ee)生成这个是一个坏主意,因为它需要经常请求数据库管理系统(MySQL)来检查unicity。 有人可以帮助我通过SQL生成此代码,例如大小为n的变量char(varchar)。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

UUID()

这会有用吗?当然,如果这是您想要的而不是UUID类型,则必须将UUID的值存储为VARCHAR。

答案 1 :(得分:0)

如果为该字段分配唯一索引,MySQL可以验证值的唯一性。例如,如果你有一个包含列名,年龄,代码的表,你可以设置一个唯一的代码密钥,它将确保代码永远不会重复。

通过这种方式,您可以生成一个唯一的字符串/数字/无论您想要的语言(例如Java EE),然后将该字符串插入表中。如果密钥已被使用,MySQL将拒绝插入。

以下是有关向表格添加密钥的MySQL文档的链接:http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

希望有所帮助。

祝你好运。