You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Уважаемые разработчики,
если в таблице изменить сразу у нескольких полей их тип данных, то для каждого поля генерируется отдельная команда на изменение типа.
Если исходная таблица велика, и изменение типа требует полного переписывания всей таблицы, то очень желательно объединить такие правки в 1 команду.
Это позволить решить 2 задачи:
скорость выполнения миграции
однократная переливка крупной таблицы
Пример:
здесь будет 4 переливки таблицы
ALTER TABLE marketing.t_lot_prod_hs
ALTER COLUMN total_price TYPE numeric(30,7) USING total_price::numeric(30,7); /* ТИП колонки изменился - Таблица: marketing.t_lot_prod_hs оригинал: numeric(30,6) новый: numeric(30,7) */
ALTER TABLE marketing.t_lot_prod_hs
ALTER COLUMN unit_price TYPE numeric(30,7) USING unit_price::numeric(30,7); /* ТИП колонки изменился - Таблица: marketing.t_lot_prod_hs оригинал: numeric(30,6) новый: numeric(30,7) */
ALTER TABLE marketing.t_lot_prod_hs
ALTER COLUMN total_price_rubles TYPE numeric(30,7) USING total_price_rubles::numeric(30,7); /* ТИП колонки изменился - Таблица: marketing.t_lot_prod_hs оригинал: numeric(30,6) новый: numeric(30,7) */
ALTER TABLE marketing.t_lot_prod_hs
ALTER COLUMN unit_price_rubles TYPE numeric(30,7) USING unit_price_rubles::numeric(30,7); /* ТИП колонки изменился - Таблица: marketing.t_lot_prod_hs оригинал: numeric(30,6) новый: numeric(30,7) */
ожидаем:
здесь будет всего 1 переливка
ALTER TABLE marketing.t_lot_prod_hs
ALTER COLUMN total_price TYPE numeric(30,7) USING total_price::numeric(30,7), /* ТИП колонки изменился - Таблица: marketing.t_lot_prod_hs оригинал: numeric(30,6) новый: numeric(30,7) */
ALTER COLUMN unit_price TYPE numeric(30,7) USING unit_price::numeric(30,7), /* ТИП колонки изменился - Таблица: marketing.t_lot_prod_hs оригинал: numeric(30,6) новый: numeric(30,7) */
ALTER COLUMN total_price_rubles TYPE numeric(30,7) USING total_price_rubles::numeric(30,7), /* ТИП колонки изменился - Таблица: marketing.t_lot_prod_hs оригинал: numeric(30,6) новый: numeric(30,7) */
ALTER COLUMN unit_price_rubles TYPE numeric(30,7) USING unit_price_rubles::numeric(30,7); /* ТИП колонки изменился - Таблица: marketing.t_lot_prod_hs оригинал: numeric(30,6) новый: numeric(30,7) */
The text was updated successfully, but these errors were encountered:
Уважаемые разработчики,
если в таблице изменить сразу у нескольких полей их тип данных, то для каждого поля генерируется отдельная команда на изменение типа.
Если исходная таблица велика, и изменение типа требует полного переписывания всей таблицы, то очень желательно объединить такие правки в 1 команду.
Это позволить решить 2 задачи:
Пример:
здесь будет 4 переливки таблицы
ожидаем:
здесь будет всего 1 переливка
The text was updated successfully, but these errors were encountered: