sql >> データベース >  >> RDS >> MariaDB

MariaDBでのUUID()のしくみ

    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'

    1. PostgreSQLで2つの日付の間の結果を取得する

    2. django ORMでクエリを実行しているときにcharを整数にキャストするにはどうすればよいですか?

    3. SQL Server AlwaysOn(可用性グループ)アーキテクチャとステップバイステップのインストール-2

    4. MariaDBの日時値にマイクロ秒を追加する8つの方法