为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:centos
【CPU】: intel
【问题描述】*:
目前开发的产品,客户达梦版本跨度较大,一部分客户还是使用的不支持 auto_increment类型的早期版本,所以统一针对主键都配置成identity类型的列来处理
但是目前发现有个客户可能是使用高版本迁移工具之类做的数据,identity类的主键全部被做成auto_increment的了,导致尝试操作时出错
这块有没有办法把这个类型给转回去?不太可能为这一个用户维护非identity的逻辑。
这块其实达梦也该考虑做一下兼容,遇上使用 auto_increment的表 set indentity之类操作就改成warning,不要出错,就没必要对这两个做太多区分处理了
如果可以重迁的话,可以按照一楼这种方式处理,如果不能重迁,可以使用语句将修改
--删除AUTO_INCREMENT自增列
alter table "SYSDBA"."AT240715" drop AUTO_INCREMENT;
--添加identity
alter table "SYSDBA"."AT240715" add column "id" identity;
多个表的话,可以拼接动态语句,批量执行
手动修改表结构或者重新迁移
迁移工具转换中有配置,现在默认的是转为auto_increment,identity迁移是需配置,新版本有这个功能,老版本不做自增列的转换