十八、clickhouse的UUID函數


--1.generateUUIDv4 

--生成版本 4UUID

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. 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM