Skip to content

表对象结构变更管理

变更表需确认是否为同步任务表,如果是同步任务表,变更操作需要同时更改源端对象与目标端对象。

表结构变更注意事项:

  • 在表上添加字段,若添加字段只有列名与数据类型信息 (无约束与默认值),可以直接使用命令进行添加,此时无数据重整可快速完成变更。
  • 若添加字段包含默认值、约束信息,此时添加字段会对历史数据进行重整,历史数据量越大,此操作耗时越长,且DDL操作会锁表,不建议进行此类操作,如确有需要,可在协商解决方案后进行(建议数据库表对象设计时考虑增加冗余字段,避免重整表的时间开销)。
  • 删除表字段,此操作将对历史数据进行重整,数据量越大,此操作耗时越长,同时DDL操作将会锁表,不建议进行此类操作,可考虑将废除字段重命名为备份字段;如删除字段操作确有需要,可由数据库管理员提供相应解决方案后进行。
  • 禁止进行表删除与表清理操作(TRUNCATE),如需进行该类操作,必须通过业务系统管理员与数据库管理员审核方可进行。
  • 慎重进行表字段数据类型变更操作,非空数据的不兼容数据类型变更不被允许,针对变长字符类型VARCHAR数据类型精度变更只能扩大,不能缩小;针对定长字符类型 CHAR 数据类型精度变更只能扩大,同时扩展需重整数据,此操作可考虑将CHAR变更为VARCHAR,既可实现精度扩展也可不重整数据;针对数值类型NUMERIC数据类型变更,支持向高精度类型进行扩展,但若对变更字段进行数据值修改,必须对该条记录进行删除后重新插入,不能直接变更该字段为高精度数据,否则会导致数据异常。
  • 表字段添加、修改或删除空、非空、默认值约束,可直接进行修改,不会产生数据操作,但需保证操作期间无业务访问和挂起事务操作该对象,否则无法进行对象加锁。
  • 可在表上预留部分字段,留待后期添加字段时,直接重命名。