Уменьшить размер столбца, а также обрезать данные в производственной базе данных, обрабатывать ограничения / зависимости для того же столбца - PullRequest
0 голосов
/ 30 августа 2018

У меня есть сценарий, в котором Java-разработчик внес изменения в переменную, которая использовалась для передачи данных из столбца столбца таблицы tbl. Теперь я должен изменить столбец varchar (15) на varchar (10). Но, прежде чем вносить это изменение, необходимо обработать существующие данные и ограничения / зависимости для одного столбца.

Какой должна быть лучшая последовательность действий? Я думаю сначала проверить ограничения, затем обрезать существующие данные и затем изменить таблицу. Пожалуйста, предложите, как обрабатывать ограничения / зависимости и, прежде чем обрабатывать их, как проверять такие зависимости.

1 Ответ

0 голосов
/ 30 августа 2018

Схема эволюции (изменения DDL, которые происходят со временем в таблицах и столбцах в базе данных при сохранении существующих данных и функциональности) - это хорошо понятная тема с несколькими решениями, некоторые из которых независимы от СУБД, другие встроены к решению СУБД.

Ключевым требованием для производственных сред является необходимость как прямого изменения, так и возврата, которые можно запускать без присмотра.

Многие сторонники открытого кода используют Liquibase, который также имеет коммерческий вариант.

Db2 для Linux / Unix / Windows также предлагает встроенную хранимую процедуру SYSPROC.ALTOBJ, которая помогает автоматизировать различные изменения схемы, в том числе уменьшение размера столбца. Вам необходимо внимательно изучить документацию и полностью протестировать ее в непроизводственной среде, пока вы не будете удовлетворены. Читайте об этом здесь https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.sql.rtn.doc/doc/r0011934.html

Конечно, вы можете вырастить свой собственный скрипт на любом языке, который вы предпочитаете, включая SQL, но помните, что вы должны также создать и протестировать сценарий возврата.

...