мы хотим навесить материализованную вьюшку с движком SummingMT, вопрос такой: данные во вьюшку будут вставляться сразу схлопнутые или к счетчику записи (допустим, отвечающему за колл-во записей за день) будет добавляться +1 для дублированной записи?
условно, вставлили запись id = 1, price = 10, type = bike, потом эту же запись снова (RMT хлопает по id), в MV появляется сначала запись type = bike, amount = 1, а что произойдет после прилета следующей? она станет type = bike, amount = 2? Если так, то как это этого можно избавиться? Спасибо.
Она заменится. Это же реплнйсинг, а не сумминг
она заменится в исходной таблице с raw данными (когда-то в фоне), но вьюшка-то у нас SummingMT, там ведь ничего заменяться не должно
тогда если напишите в мат вью суммирование, то будет суммироваться (существующая + новая)
дублирующие записи будут порождать инсерт тригер, который их будет получать до того как в фоне эти записи схлопнуться, соответственно просуммируются. тут на это много кто жалуется, потому что обычно хотят чтобы дубли не суммировались, а пересчитывались.
и это пока никак не решить?
никак
проблему можно решить только частично, например при изменении записи можно вставить первоначальную запись со знаком минус, тогда в мат вью произойдёт уменьшение суммы и при вставке обновлённой записи всё будет посчитано верно, для более сложных случаев подход может быть сильно сложнее и даже не выполним
Обсуждают сегодня