2011-12-19 71 views
0

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

+0

[如何在MySQL中生成唯一的ID?](http://stackoverflow.com/questions/1467581/how-to-generate-unique-id-in-mysql)可能的重复。也感兴趣:[使用MySQL生成随机和唯一的8字符字符串](http://stackoverflow.com/a/16738409/1446005) – RandomSeed 2014-06-19 11:44:48

回答

1

UUID()

这项工作?当然,如果这是你想要的而不是UUID类型,你将不得不将UUID的值存储为VARCHAR。

+0

我会研究这种可能性。感谢您的答复。 – nabil 2011-12-19 17:53:16

+0

+1 - 使用UUID功能是解决此问题的唯一正确方法。 – TehShrike 2011-12-19 18:13:56

0

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

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

下面是MySQL文档的链接添加键表:http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

希望有所帮助。

祝你好运。

+0

感谢您的链接。 – nabil 2011-12-19 18:00:36