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'