1. ホーム
  2. sql-server

[解決済み] GUIDの衝突は起こり得るか?

2022-05-15 14:56:04

質問

SQL Server 2000 のデータベースで、関連付けられたアプリを使用する各ユーザーに GUID を使用する作業を行っています。どういうわけか、2 人のユーザーが同じ GUID を持つことになりました。マイクロソフトが、衝突を引き起こす可能性が極めて低いランダムな GUID を生成するアルゴリズムを使用していることは知っていますが、それでも衝突は起こり得るのでしょうか?

どのように解決すればよいのでしょうか。

基本的にありません。 誰かがあなたのデータベースをいじったのだと思います。 使用しているバージョン GUID に応じて、値はユニーク (バージョン 1 の GUID など) か、ユニークかつ予測不可能 (バージョン 4 の GUID など) のどちらかになります。 SQL ServerのNEWID()関数の実装は128ビットの乱数を使用しているようなので、衝突することはないでしょう。

衝突の確率が 1 % の場合、およそ 2,600,000,000,000,000,000 GUID を生成する必要があります。