Как заменить значения в ключевом поле в ClickhouseDB (порядок действий: 7 шагов)

Шаг #1 #Добавить новое поле в таблицу для переноса значений

ALTER TABLE db2.TestTZakaziKlientov_KIMKARUS ADD COLUMN PartnerNaimenovanie String;


Шаг #2 #Создаем временную таблицу без нашего ключевого поля

CREATE TABLE db2.TestTZakaziKlientov_KIMKARUS_tmp2
(
    `Period` DateTime,
    `Data` DateTime,
    `Menedzher` String,
    `Nomer` String,
    `PartnerKod` String,
    `Podrazdelenie` String,
    `SummaDokumenta` Decimal(38, 18),
    `Proveden` Int32,
    `Organizaciya` String,
    `Status` String,
    `Ssilka` String,
    `Valyuta` String,
    `Partner` String,
    `PartnerNaimenovanie` String
)
ENGINE = ReplacingMergeTree
PRIMARY KEY (Period,
 Menedzher,
 Podrazdelenie,
 Organizaciya,
 Ssilka,
 Valyuta)
ORDER BY (Period,
 Menedzher,
 Podrazdelenie,
 Organizaciya,
 Ssilka,
 Valyuta)
SETTINGS index_granularity = 8192;

Шаг #3 #Переносим все записи из таблицы источника во временную таблицу

INSERT INTO db2.TestTZakaziKlientov_KIMKARUS_tmp2 SELECT * FROM db2.TestTZakaziKlientov_KIMKARUS;

Шаг #4 #Переносим значения из колонки партнера в наименование партнера

ALTER TABLE db2.TestTZakaziKlientov_KIMKARUS_tmp2 (UPDATE PartnerNaimenovanie = Partner WHERE 1);

Шаг #5 #Переносим значения кода партнёра в поле партнера

ALTER TABLE db2.TestTZakaziKlientov_KIMKARUS_tmp2 (UPDATE Partner = PartnerKod WHERE 1);

Шаг #6 #Очищаем таблицу источника

TRUNCATE TABLE db2.TestTZakaziKlientov_KIMKARUS;

Шаг #7 #Переносим все записи из временной таблицы в таблицу источника

INSERT INTO db2.TestTZakaziKlientov_KIMKARUS SELECT * FROM db2.TestTZakaziKlientov_KIMKARUS_tmp2;

Добавить комментарий