такая таблица:
create TABLE a (
d DateTime,
id UInt64,
n Nested (
id_n UInt64,
n_n Nested (
id_n_n UInt64,
n_n_n Nested (
id_n_n_n UInt64,
n_n_s String
)
)
)
) ENGINE MergeTree
ORDER BY (d, id);
Как в неё добавить запись?
Есть подозрение, что КХ не совсем тот инструмент. Зачем вам такая структура?
Nested это массивы как то так должно быть INSERT INTO a (d, id, n.id_n, n.nn,id_n_nn) VALUES (now(), 1, 1, [1],[1]) какой у вас формат ввода и язык программирования для вставки?
Чтобы не дожйнить потом с другими таблицами
Я из PHP буду вставлять. Но для одного уровня это понятно и очевидно, а вот второй и третий уровень вложенности - не понимаю, как туда добавлять записи
ну указывайте вложенные поля явно в INSERT и вставляйте как массивы кол-во элементов в массиве для вложенной структуры должно быть одинаково
В том и проблема. Пробую так: insert into a (d, id, n.id_n, n.n_n) VALUES ('2022-01-20 10:34:01', 1, [2], [[3], [[4], ['s1']]]), ('2022-01-20 10:34:02', 5, [6], [[7], [[8], ['s2']]]); Ошибка There is no supertype for types UInt8, String because some of them are String/FixedString and some of them are not: While processing [[3], [[4], ['s1']]]
Ну, те скорее всего точно не тот) Что там хранить собираетесь? Может вам структуру данных поменять?
Да все просто. Есть транзакция, и есть элементы транзакции. Растаскивать это по разным таблицам не хочется, так как очень часто для элементов транзакции будут нужны данные самой транзакции. Обе таблицы достаточно большие. И для элементов транзакций есть еще ряд значений, которые справочниками не сделаешь.
Обсуждают сегодня