Update enum.md

automatic assigned enums for ru is added
This commit is contained in:
Yakov Olkhovskiy 2022-04-19 23:33:04 -04:00 committed by GitHub
parent 58a3ce78e9
commit 389cc4b17b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -7,7 +7,7 @@ toc_title: Enum
Перечисляемый тип данных, содержащий именованные значения.
Именованные значения задаются парами `'string' = integer`. ClickHouse хранит только числа, но допускает операции над ними с помощью заданных имён.
Именованные значения задаются либо парами `'string' = integer`, либо именами `'string'`. ClickHouse хранит только числа, но допускает операции над ними с помощью заданных имён.
ClickHouse поддерживает:
@ -28,6 +28,39 @@ CREATE TABLE t_enum
ENGINE = TinyLog
```
Номера могут быть опущены - в этом случае ClickHouse автоматически присвоит последовательные номера, начиная с 1.
``` sql
CREATE TABLE t_enum
(
x Enum('hello', 'world')
)
ENGINE = TinyLog
```
Можно также указать допустимый стартовый номер для первого имени.
``` sql
CREATE TABLE t_enum
(
x Enum('hello' = 1, 'world')
)
ENGINE = TinyLog
```
``` sql
CREATE TABLE t_enum
(
x Enum8('hello' = -129, 'world')
)
ENGINE = TinyLog
```
``` text
Exception on server:
Code: 69. DB::Exception: Value -129 for element 'hello' exceeds range of Enum8.
```
В столбец `x` можно сохранять только значения, перечисленные при определении типа, т.е. `'hello'` или `'world'`. Если вы попытаетесь сохранить любое другое значение, ClickHouse сгенерирует исключение. ClickHouse автоматически выберет размерность 8-bit для этого `Enum`.
``` sql