184 похожих чатов

Всем привет! Как добавлять записи с вложенными структурами? Допустим, есть

такая таблица:
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);

Как в неё добавить запись?

8 ответов

62 просмотра

Есть подозрение, что КХ не совсем тот инструмент. Зачем вам такая структура?

Nested это массивы как то так должно быть INSERT INTO a (d, id, n.id_n, n.nn,id_n_nn) VALUES (now(), 1, 1, [1],[1]) какой у вас формат ввода и язык программирования для вставки?

In-Fis Автор вопроса
Kirill Shvakov
Есть подозрение, что КХ не совсем тот инструмент. ...

Чтобы не дожйнить потом с другими таблицами

In-Fis Автор вопроса
Slach [altinity]
Nested это массивы как то так должно быть INSERT I...

Я из PHP буду вставлять. Но для одного уровня это понятно и очевидно, а вот второй и третий уровень вложенности - не понимаю, как туда добавлять записи

In Fis
Я из PHP буду вставлять. Но для одного уровня это ...

ну указывайте вложенные поля явно в INSERT и вставляйте как массивы кол-во элементов в массиве для вложенной структуры должно быть одинаково

In-Fis Автор вопроса
Slach [altinity]
ну указывайте вложенные поля явно в 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']]]

In Fis
Чтобы не дожйнить потом с другими таблицами

Ну, те скорее всего точно не тот) Что там хранить собираетесь? Может вам структуру данных поменять?

In-Fis Автор вопроса
Kirill Shvakov
Ну, те скорее всего точно не тот) Что там хранить ...

Да все просто. Есть транзакция, и есть элементы транзакции. Растаскивать это по разным таблицам не хочется, так как очень часто для элементов транзакции будут нужны данные самой транзакции. Обе таблицы достаточно большие. И для элементов транзакций есть еще ряд значений, которые справочниками не сделаешь.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта