宣言
BIN_TO_UUID(binary_uuid), BIN_TO_UUID(binary_uuid,swap_flag)
説明
BIN_TO_UUID()は、バイナリUUIDを文字列UUIDに変換してその結果を返します。バイナリ値binary_uuidは、VARBINARY(16)データ型のUUIDである必要があります。返される値はUUIDバージョン1に準拠し、128ビットの数字であり、ハイフンで区切られた5つの16進数で構成されるutf8mb3文字列です。書式はUUID()関数と同じで、aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeee形式です。詳細は以下の通りです:
- 最初の3桁は、タイムスタンプの低、中、高の各部分から生成されます。上位部分にはUUIDバージョン番号も含まれます。
- 4番目の桁は、タイムスタンプ値が一意性を失うことを防ぐために時間の一意性を保持します(例えば、サマータイムの影響など)。
- 5番目の桁は、空間の一意性を提供するIEEE 802ノード番号です。利用できない場合はランダムな数値に置き換えられますが、空間の一意性は保証されません。
UUIDパラメータがNULLの場合、返される値はNULLです。いずれかのパラメータが無効な場合、エラーが発生します。
BIN_TO_UUID()の構文には、単一パラメータと複数パラメータの2種類があります。詳細は以下の通りです:
- 単一パラメータ形式では、バイナリUUID値を指定します。UUID値は、時間の低い部分と時間の高い部分を入れ替えないものと仮定されます。返される文字列結果は、バイナリパラメータの順序と同じです。
- 複数パラメータ形式では、バイナリUUID値と
swap-flag値を指定します:swap_flagが0の場合、複数パラメータ形式は単一パラメータ形式と同じです。文字列結果は、バイナリパラメータの順序と同じです。swap_flagが1の場合、UUID値が時間の低い部分と時間の高い部分を入れ替えたものと仮定されます。これらの部分は、結果値内の元の位置に戻されます。
BIN_TO_UUID()はUUID_TO_BIN()の逆関数です。使用例や時間部分の入れ替えルールについては、UUID_TO_BIN()を参照してください。