如何解決自增列賦值的問題

yanhengdoudou發表於2019-10-22

現象描述

我們有時候會遇到自增列賦值的問題,尤其是當之前使用的是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部落格 ” ,連結:http://blog.itpub.net/69949798/viewspace-2660879/,如需轉載,請註明出處,否則將追究法律責任。

相關文章