在生产数据库中减少列大小和 trim 数据,在同一列上处理 constraints/dependencies
Reduce column size and also trim data, in production database, handle constraints/dependencies on same column
我有一个场景,其中 Java 开发人员更改了用于从 table 的列 - col - tbl 传输数据的变量。
现在,我必须将列 varchar(15) 更改为 varchar(10)。但是,在进行此更改之前 - 必须处理现有数据和同一列上的 constraints/dependencies。
这样做的最佳顺序应该是什么?
我想先检查约束,然后 trim 现有数据,然后更改 table。
请建议如何处理 constrains/dependencies 以及在处理之前如何检查此类依赖关系。
Schema-evolution(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,但请记住,您还应该构建和测试回退脚本。
我有一个场景,其中 Java 开发人员更改了用于从 table 的列 - col - tbl 传输数据的变量。 现在,我必须将列 varchar(15) 更改为 varchar(10)。但是,在进行此更改之前 - 必须处理现有数据和同一列上的 constraints/dependencies。
这样做的最佳顺序应该是什么? 我想先检查约束,然后 trim 现有数据,然后更改 table。 请建议如何处理 constrains/dependencies 以及在处理之前如何检查此类依赖关系。
Schema-evolution(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,但请记住,您还应该构建和测试回退脚本。