MariaDBでは、UUID()
は、Universal Unique Identifier(UUID)を返す組み込み関数です。
UUIDは、1997年10月にThe Open Groupによって公開された「DCE1.1:リモートプロシージャコール」(付録A)CAE(共通アプリケーション環境)仕様(ドキュメント番号C706)に従って生成されます。
構文
構文は次のようになります:
UUID()
したがって、引数は必要ありません(または受け入れられません)。
例
デモンストレーションの例を次に示します。
SELECT UUID();
結果:
+--------------------------------------+ | UUID() | +--------------------------------------+ | e5aa36ee-cd8a-11eb-be04-88e9fe739f3d | +--------------------------------------+
別の機会に呼び出すと、別の値が得られます:
SELECT UUID();
結果:
+--------------------------------------+ | UUID() | +--------------------------------------+ | f11b4702-cd8a-11eb-be04-88e9fe739f3d | +--------------------------------------+
UUIDについて
UUID(Universal Unique Identifier)は、空間と時間でグローバルに一意になるように設計された番号です。 UUID()
への2回の呼び出し これらの呼び出しが、互いに接続されていない2台の別々のコンピューターで実行された場合でも、2つの異なる値を生成することが期待されます。
UUIDは、aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
の5つの16進数のutf8文字列で表される128ビットの数値です。 フォーマット:
- 最初の3つの数値は、タイムスタンプから生成されます。
- 4番目の数値は、タイムスタンプ値が単調性を失った場合(たとえば、夏時間のため)に時間的な一意性を保持します。
- 5番目の番号は、空間的な一意性を提供するIEEE802ノード番号です。後者が利用できない場合は、ランダムな番号に置き換えられます。このような場合、空間的な一意性は保証されません。そうは言っても、衝突は非常に低い確率で発生するはずです。
UUID()
を使用するステートメントに注意してください 関数はステートメントベースのレプリケーションには安全ではありません。
SYS_GUID()
との比較 機能
UUID()
によって返される結果 SYS_GUID()
によって返されるものと似ています 関数、ただしSYS_GUID()
ハイフン記号は含まれていません(-
)結果に(一方、UUID()
2つの比較は次のとおりです。
SELECT
UUID(),
SYS_GUID();
結果:
+--------------------------------------+----------------------------------+ | UUID() | SYS_GUID() | +--------------------------------------+----------------------------------+ | 9e795ffc-cd71-11eb-8f75-0800270503a7 | 9E796001CD7111EB8F750800270503A7 | +--------------------------------------+----------------------------------+
SYS_GUID()
この関数は、Oracleの互換性を強化するためにMariaDB10.6.1で導入されました。
UUID_SHORT()
もあります 短いUUIDを64ビットの符号なし整数として返す関数。
引数の受け渡し
前述のように、UUID()
引数を受け入れません。引数を渡すと次のようになります:
SELECT UUID(3);
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID'