ITPub博客

首页 > 数据库 > 国内数据库 > 如何解决自增列赋值的问题

如何解决自增列赋值的问题

原创 国内数据库 作者:yanhengdoudou 时间:2019-10-22 16:35:24 2 删除 编辑

现象描述

我们有时候会遇到自增列赋值的问题,尤其是当之前使用的是Mysql 时,在往达梦或者其他数据库迁移后,如果目的数据库无法进行自增列赋值,之前的应用程序怎么办?

 

应用中可能遇到报错:不可修改自增列

处理方法

修改表结构,不再使用自增列,而是使用普通列,同事设置默认值为序列。

 

原因:

1.        自增列赋值本身是一个mysql 不严谨的用法,自增列本身应该有系统管理,不应该可以赋值

2.        虽然在其他数据库,如达梦数据库上,可以通过相关开关来开启自增列辅助的功能,但是这个功能默认是关闭的,也应该是关闭的

3.        那么在之前的Mysql 应用场景中,我们只需要通过普通列+ 序列默认值的方式,就可以解决该问题。

 

具体例子如下:

 

Mysql 建表如下:

create table test3

(

 id int auto_increment not null,

 str varchar(2),

 key(id)

);

 

在DM 应该先手动迁移该表结构,在迁移数据:

create SEQUENCE seq_auto_increment_test3 INCREMENT by 1 START WITH 1 ;

create table test3

(

 id int default seq_auto_increment_test3.nextval primary key,

 str varchar(2)

);

 

这样变更的表结构,“自增列”的赋值属性,包括其他用法,是基本一致的,可以绕过前述问题,保证应用正常。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69949798/viewspace-2660879/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-09-29

  • 博文量
    70
  • 访问量
    193341