4

Web サイトの「パスワードのリセット」機能を作成しています。その一環として、MySQL データベースに挿入するランダムで一意の文字列を生成する必要があります。

今のところ、これは単に使用SHA1(RAND())して行われ、完全に機能します。ただし、それ1.46150164E48(SHA1一意の範囲が何であるかわからないため) さまざまな組み合わせを提供RANDするだけであり、2 つの同一の値が挿入される状況が決して起こらないようにしたいと考えています。

これで、PHP (これは PHP ベースの Web サイトであるため) で簡単に実行でき、存在しないランダムな文字列が生成されるまでループを繰り返します。これはほとんどの場合 1 回の繰り返しですが、これがMySQLで可能ですか?

つまり、MySQL で、MySQL 自体が特定のテーブルとフィールドで一意であることを保証する疑似ランダム文字列を生成することは可能ですか?

4

1 に答える 1

9

毎回一意の値を生成する UUID() グローバル関数を利用することもできます。

SELECT UUID()
于 2012-07-16T05:35:10.983 に答える