减小列大小并修剪数据,在生产数据库中处理同一列的约束/依赖项



>我有一个场景,Java 开发人员对用于从列 - 表的列 - tbl 传输数据的变量进行了更改。 现在,我必须将列 varchar(15( 更改为 varchar(10(。但是,在进行此更改之前 - 必须处理现有数据和同一列上的约束/依赖项。

这样做的最佳顺序应该是什么? 我正在考虑先检查约束,然后修剪现有数据,然后更改表格。 请建议如何处理约束/依赖关系,在处理之前,如何检查此类依赖关系。

模式演进(随着时间的推移对数据库中的表和列发生的DDL更改,同时保留现有数据和功能(是一个很好理解的主题,有几个解决方案,其中一些是独立于RDBMS的,另一些是内置于RDBMS解决方案中的。

生产环境的一个关键要求是需要正向更改和回退,后者可以在无人参与的情况下运行。

许多开源倡导者使用Liquibase,它也有一个商业变体。

Db2 for 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(开发自己的脚本,但请记住,您还应该构建和测试回退脚本。

最新更新