UUID()

UUID()

1977 年 10 月に、The Open Group が発行した 「DCE 1.1:Remote Procedure Call」 (Appendix A) CAE (Common Applications Environment) Specifications ( Document Number C706 、http://www.opengroup.org/public/pubs/catalog/c706.htm ) に基づいて生成された Universal Unique Identifier (UUID) を戻します。

UUID は、スペースおよび時間においてグローバルに一意の数字としてデザインされています。UUID() へのふたつの呼び出しは、互いに接続されていない別々のコンピュータ上で行った場合でも、それぞれ異なるふたつの値を生成することが想定されます。

A UUID is a 128-bit number represented by a string of five hexadecimal numbers in aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee format:

  • 最初の 3 桁はタイムスタンプから生成されます。

  • 4 番目の数字は、タイムスタンプ値が単調整を失う場合 ( 例えば、夏時間の影響などで ) に備えて、一時的な一意性を保ちます。

  • 5 番目の数字は、スペースの一意性を提供する IEEE 802 ノード番号です。後者が利用できない場合 ( 例えば、ホスト コンピュータが Ethernet カードを持たない、または使用のオペレーション システムでインターフェイスのハードウェア アドレスを見つける方法が分からない、など ) 、ランダムな数字で代替されます。その場合、スペースの一意性は保証されません。しかしそれでも、不調和が起こる可能性は 非常に 低いと思われます。

    現在、インターフェイスの MAC アドレスは、FreeBSD と Linux でのみ考慮されています。他のオペレーション システムでは、MySQL はランダムに生成された 48 ビットの数字を使用します。

mysql> SELECT UUID();
        -> '6ccd780c-baba-1026-9564-0040f4311e29'

UUID() はまだ複製との作業は不可能ですのでご注意ください。