и MV выдала ошибку, то вся транзакция отменяется?
Может такое, что есть триггер просто перекладывающий из A в B (одинаковая схема) и в A данные успешно добавились (их можно прочесть), а в B триггер не переложил?
нет не отменяется просто нет вставки в таблицу которая под MV лежит в родительскую таблицу вставка пройдет в clickhouse нет транзакций
А если две MV и одна выдала ошибку? Ладно, это можно проверить( Спасибо
тоже самое, первая вставит, вторая нет я же сказал транзакций НЕТ MV это не транзакционный AFTER INSERT TRIGGER который работает с куском данных который поступил в инициирующую таблицу по INSERT каскадные MV тоже отдельно работают
CREATE TABLE A ( a String ) ENGINE = MergeTree() ORDER BY a PRIMARY KEY a CREATE TABLE B ( a String ) ENGINE = MergeTree() ORDER BY a PRIMARY KEY a CREATE TABLE C ( a UUID ) ENGINE = MergeTree() ORDER BY a PRIMARY KEY a CREATE MATERIALIZED VIEW A2B TO B ( a String ) AS SELECT a as `a` FROM A CREATE MATERIALIZED VIEW A2C TO C ( a UUID ) AS SELECT toUUID(a) as `a` FROM A Попробовал вставить INSERT INTO A (a) VALUES ('djskdjsd') В A вставилось, в B и C не вставилось
возможно я ввел вас в заблуждение, извините там может у вас сначала A2C выбрался и упал с ошибкой или реально там когда все триггеры MV стартуют то если хоть один упал остальные тоже откатываются но вроде как планируются улучшения https://github.com/ClickHouse/ClickHouse/issues/19352
Обсуждают сегодня