4

我正在为一个网站编写一个“重置密码”工具,作为其中的一部分,我需要生成一个随机的、唯一的字符串以插入 MySQL 数据库。

到目前为止,这只是简单地使用SHA1(RAND()),并且效果很好。然而,这只给出了不同的组合1.46150164E48(因为SHA1我不太确定唯一的范围RAND是什么)不同的组合并且我想确保插入两个相同值的情况永远不会发生。

现在我可以很容易地用 PHP 完成它(因为这是基于 PHP 的网站),遍历一个循环,直到生成一个不存在的随机字符串 - 在大多数情况下,这将是 1 次迭代,但我想知道这是否是可以用 MySQL 吗?

也就是说:在 MySQL 中,是否有可能生成一个伪随机字符串,MySQL 本身将确保在给定的表和字段中是唯一的?

4

1 回答 1

9

您还可以使用每次生成唯一值的 UUID() 全局函数:

SELECT UUID()
于 2012-07-16T05:35:10.983 回答