Мне нужно изменить множество столбцов в таблице Vertica и решил полностью отказаться от таблицы и создать новую. Мне также нужны сценарии «отменить», готовые возвратить изменения, если это необходимо (с использованием миграции mybatis).Как переименовать таблицу вместе с проекциями в Vertica?
Это мой план:
rename mytable to mytable_backup
create mytable
create projection mytable_super (as select from mytable)
--undo
drop mytable if exists
rename mytable_backup to mytable
оригинальные туЬаОе также был создан с проекцией. Вышеприведенный скрипт дает ошибку, поскольку проецирование уже существует.
DBCException: SQL Error [4482] [42710]: [Vertica][VJDBC](4482) ROLLBACK: Projection with base name "mytable_super" already exists
Я считаю, что при переименовании исходной таблицы основной проектор не переименовывается.
Каков наилучший способ переименования таблицы с проекциями в vertica? Или какой лучший способ создать резервную копию стола и вернуться обратно?
Можно ли переименовать выступы? будут ли мешать любому материалу, который Vertica делает в фоновом режиме с точки зрения управления проекциями/идентификаторами объектов и т. д.? – Gadam
Нет проблем с переименованием прогнозов, если у вас нет запросов, которые используют их напрямую (например, Live Aggregate Projections) или других сценариев, которые зависят от имени. Тем не менее, нет ничего внутреннего для Vertica. – woot
Спасибо, еще один вопрос: если позже я добавлю/изменим поле в таблице, мне также нужно добавить/изменить в проекции; или это автоматически позаботится? – Gadam