--1.generateUUIDv4
--生成版本 4的UUID。
generateUUIDv4()
返回值
UUID 類型值。
使用示例
此示例演示創建具有 UUID 類型列的表並將值插入表中。
--創建CREATE TABLE t_uuid ( `x` UUID ) ENGINE = TinyLog Query id: e3b50065-817a-41b9-ae13-e027f4e1b984 Ok. 0 rows in set. Elapsed: 0.002 sec. --插入 INSERT INTO t_uuid SELECT generateUUIDv4() Query id: 6959cf7a-af7a-420d-88e6-5d8a7bf772c9 Ok. 0 rows in set. Elapsed: 0.002 sec. --查詢 SELECT * FROM t_uuid Query id: a9885848-d481-415b-82ca-87677f6303fd ┌─x────────────────────────────────────┐ │ 96434791-6a79-4ba2-b017-218e52963769 │ └──────────────────────────────────────┘ 1 rows in set. Elapsed: 0.002 sec.
--2.空
--檢查輸入 UUID 是否為空。
句法
empty(UUID)
如果 UUID 包含全零(零 UUID),則認為 UUID 為空。
該函數也適用於數組或字符串。
論據
x
— 輸入 UUID。UUID。
返回值
- 返回
1
空 UUID0
或非空 UUID。
類型:UInt8。
例子
為了生成 UUID 值,ClickHouse 提供了generateUUIDv4函數。
SELECT empty(generateUUIDv4()) Query id: 59b648ec-0129-442c-b4d4-2e606faa11ee ┌─empty(generateUUIDv4())─┐ │ 0 │ └─────────────────────────┘ 1 rows in set. Elapsed: 0.002 sec.
--3.notEmpty
--檢查輸入 UUID 是否為非空。
句法
notEmpty(UUID)
如果 UUID 包含全零(零 UUID),則認為 UUID 為空。
該函數也適用於數組或字符串。
論據
x
— 輸入 UUID。UUID。
返回值
- 返回
1
非空 UUID 或0
空 UUID。
類型:UInt8。
例子
為了生成 UUID 值,ClickHouse 提供了generateUUIDv4函數。
SELECT notEmpty(generateUUIDv4()) Query id: 412745b9-8e90-458e-a367-8400685abec1 ┌─notEmpty(generateUUIDv4())─┐ │ 1 │ └────────────────────────────┘ 1 rows in set. Elapsed: 0.002 sec.
--4.toUUID (x)
--將 String 類型值轉換為 UUID 類型。
toUUID(String)
返回值
UUID 類型值。
使用示例
SELECT toUUID('61f0c404-5cb3-11e7-907b-a6006ad3dba0') AS uuid Query id: 98ff171e-a2c1-4c4b-b044-c9aa777c02ba ┌─uuid─────────────────────────────────┐ │ 61f0c404-5cb3-11e7-907b-a6006ad3dba0 │ └──────────────────────────────────────┘ 1 rows in set. Elapsed: 0.002 sec.
--5.toUUIDorNull (x)
--它接受一個 String 類型的參數並嘗試將其解析為 UUID。如果失敗,則返回 NULL。
toUUIDOrNull(String)
返回值
Nullable(UUID) 類型值。
使用示例
SELECT toUUIDOrNull('61f0c404-5cb3-11e7-907b-a6006ad3dba0T') AS uuid Query id: b60153da-34aa-4450-81b9-d967bf39b031 ┌─uuid─┐ │ ᴺᵁᴸᴸ │ └──────┘ 1 rows in set. Elapsed: 0.002 sec.
--6.toUUIDorZero (x)
--它接受一個 String 類型的參數並嘗試將其解析為 UUID。如果失敗,則返回零 UUID。
toUUIDOrZero(String)
返回值
UUID 類型值。
使用示例
SELECT toUUIDOrZero('61f0c404-5cb3-11e7-907b-a6006ad3dba0T') AS uuid Query id: fb818482-7ff1-4808-943d-4548e2f7087d ┌─uuid─────────────────────────────────┐ │ 00000000-0000-0000-0000-000000000000 │ └──────────────────────────────────────┘ 1 rows in set. Elapsed: 0.002 sec.
--7.UUIDStringToNum
--接受格式為 36 個字符的字符串xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
,並將其作為FixedString(16)中的一組字節返回。
UUIDStringToNum(String)
返回值
FixedString(16)
使用示例
SELECT '612f3c40-5d3b-217e-707b-6a546a3d7b29' AS uuid, UUIDStringToNum(uuid) AS bytes Query id: 7c669a41-6174-4eab-8613-f76487616460 ┌─uuid─────────────────────────────────┬─bytes────────────┐ │ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ a/<@];!~p{jTj={) │ └──────────────────────────────────────┴──────────────────┘ 1 rows in set. Elapsed: 0.002 sec.
--8.UUIDNumToString
--接受FixedString(16)值,並以文本格式返回包含 36 個字符的字符串。
UUIDNumToString(FixedString(16))
返回值
String。
使用示例
SELECT 'a/<@];!~p{jTj={)' AS bytes, UUIDNumToString(toFixedString(bytes, 16)) AS uuid Query id: f5cfccda-c309-4126-9681-97033522d7dd ┌─bytes────────────┬─uuid─────────────────────────────────┐ │ a/<@];!~p{jTj={) │ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ └──────────────────┴──────────────────────────────────────┘ 1 rows in set. Elapsed: 0.002 sec.
--9.serverUUID()
--返回隨機且唯一的 UUID,該 UUID 在服務器首次啟動時生成並永久存儲。結果寫入uuid
在 ClickHouse 服務器目錄中創建的文件/var/lib/clickhouse/
。
句法
服務器UUID()
返回值
- 服務器的 UUID。
類型:UUID。
使用示例
SELECT serverUUID() Query id: 53f616a7-0d4a-426f-a135-e570cf531ed4 ┌─serverUUID()─────────────────────────┐ │ 7807deab-3de7-485e-8290-d472bc47a3a6 │ └──────────────────────────────────────┘ 1 rows in set. Elapsed: 0.002 sec.