我正在为网站编写“重置密码”工具,作为其中的一部分,我需要生成一个随机的,唯一的字符串,以插入MySQL数据库。
截至目前,这只是使用SHA1(RAND())
完成,它完美无缺。但是仅给出了1.46150164E48
{对于SHA1
我不太确定RAND
的唯一范围是什么)不同的组合和迂腐我想要确保插入两个相同值的情况永远不会发生。
现在我可以轻松地使用PHP(因为这是基于PHP的网站),迭代循环直到生成一个不存在的随机字符串 - 在大多数情况下将是1次迭代,但我想知道如果可以使用MySQL吗?
那就是:在MySQL中,是否有可能生成一个伪随机字符串,MySQL本身将确保在给定的表和字段中是唯一的?
答案 0 :(得分:9)
您还可以使用每次都生成唯一值的UUID()全局函数:
SELECT UUID()