задав в order by (полу дублирует другое поле)
2). primary key (поле пустое)
также не видно в дебивере что это ключ
Автоинкремента в КХ не было
понял надо самостоятельно генерировать
есть uuid генератов в КХ
CREATE TABLE t ( id generateUUIDv4(), contract_id UInt64, insurance_company Nullable(String), traffic_source Nullable(String), сразу так нельзя указывать?
можно, но вы неправильно написали, тип данных не указали, default
id generateUUIDv4(default), или id toUUID(rand64()), если так написать то поле пустое
Давай вы доку почитайте
https://clickhouse.com/docs/ru/sql-reference/statements/create/table/#default
это я вижу но там написано в запросе insert а я при создании хочу сделать поле с дефолтным значением id
пришлите уже полный ваш крейт я вам подставлю куда нужно
CREATE TABLE vector.dt_os ( id UUID DEFAULT (generateUUIDv4()), contract_id UInt64, created_at DateTime ) ENGINE = MergeTree ORDER BY id PRIMARY KEY id;
так а в чем проблема? insert into vector.dt_os(contract_id, created_at) values (1, now()); select * from vector.dt_os;
При создании таблицы задаете опцию default. При заполнении таблицы этот атрибут будет вычисляться. Есть атрибуты таблицы. При создании таблицы (в простейшем случае) в базе создается только структура таблицы, без содержимого. Значение атрибута по умолчанию начинает действовать, когда в таблице появляются записи. Записи появляются в таблице, когда вы делаете INSERT значений. (если, конечно, это не специальный тип таблиц).
запись возникла но id почему-то пустое
вы через интерфейс вставляете, а не запросом? Попробуйте сделать колонку не default, а materialized. Другое дело, что эта колонка, скорее всего, вам не нужна, и задачу в КХ надо решать иначе.
я могу на беке генерировать uuid
Обсуждают сегодня