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

MariaDBでのUUID_SHORT()のしくみ

    MariaDBでは、UUID_SHORT() は、短いUniversal Unique Identifier(UUID)を返す組み込み関数です。

    64ビットの符号なし整数を返します(UUID()によって返される文字列形式の128ビット識別子とは対照的です。 関数)。

    構文

    構文は次のようになります:

    UUID_SHORT()

    したがって、引数は必要ありません(または受け入れられません)。

    デモンストレーションの例を次に示します。

    SELECT UUID_SHORT();

    結果:

    +-------------------+
    | UUID_SHORT()      |
    +-------------------+
    | 99291717236162560 |
    +-------------------+

    別の機会に呼び出すと、別の値が得られます:

    SELECT UUID_SHORT();

    結果:

    +-------------------+
    | UUID_SHORT()      |
    +-------------------+
    | 99291717236162561 |
    +-------------------+

    結果について

    UUID_SHORT()によって返される値 次の条件が当てはまる場合、一意であることが保証されます。

    • server_id 現在のホストの数は、マスターサーバーとスレーブサーバーのセットの中で一意です
    • server_id 0の間にあります および255
    • サーバーのシステム時刻をmysqldの間に戻さないでください 再起動
    • UUID_SHORT()を呼び出さない mysqld間で平均して1秒あたり1600万回以上 再起動

    UUID_SHORT()を使用するステートメントに注意してください 関数はステートメントベースのレプリケーションには安全ではありません。

    UUID()との比較 機能

    UUID_SHORT()によって返される結果 UUID()によって返されるものと似ています UUID()によって返される結果を除いて関数 は、aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeの5つの16進数のutf8文字列で表される128ビットの数値です。 フォーマット。

    2つの比較は次のとおりです。

    SELECT 
        UUID(),
        UUID_SHORT();

    結果:

    +--------------------------------------+-------------------+
    | UUID()                               | UUID_SHORT()      |
    +--------------------------------------+-------------------+
    | e67d0fc6-cd8d-11eb-be04-88e9fe739f3d | 99291717236162562 |
    +--------------------------------------+-------------------+

    これに加えて、MariaDB 10.6.1から、SYS_GUID() Oracleの互換性を強化するために関数が追加されました。

    引数なし

    前述のように、UUID_SHORT() 引数を受け入れません。引数を渡すとどうなりますか:

    SELECT UUID_SHORT(3);

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID_SHORT'

    1. FieldAから値を取得し、db関数に送信し、FieldBに値を返します

    2. EditTextのユーザー入力でスピナーのフィールドを更新するにはどうすればよいですか?

    3. Oracleでバージョン4(ランダム)UUIDを生成するにはどうすればよいですか?

    4. 修正方法「プロシージャは、タイプ「ntext / nchar/nvarchar」のパラメータ「@statement」を予期しています。」 SQLServerのエラー