亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

mysql修改自增主鍵數值無效的問題及解決

瀏覽:7日期:2023-06-08 19:37:37
目錄mysql修改自增主鍵數值無效mysql自增主鍵重復問題的可能自增字段的定義和題外話自增字段重復問題總結mysql修改自增主鍵數值無效

假如你的數據表中的數據如下圖所示:

把自增主鍵的數值(AUTO_INCREMENT)設置為小于等于100的值(以數值50舉例),我們可以看到mysql顯示修改成功

此時再次添加數據并查詢所有數據,發現主鍵id居然依舊從100開始繼續增長

查詢AUTO_INCRMENT數值發現數值為null

因為表中存在比你要修改AUTO_INCREMENT值大的主鍵id,導致無法把AUTO_INCREMENT修改為50,而且不會有任何報錯,所以不要把AUTO_INCREMENT修改為小于 最大主鍵id 的值

mysql自增主鍵重復問題的可能

MySQL支持數據字段自增,可以用來作為數據表的主鍵字段。

自增字段的定義和題外話

看一個數據表的創建實例:

DROP TABLE IF EXISTS `spgl_dfxmsplcxxb`;CREATE TABLE `spgl_dfxmsplcxxb` (? `LSH` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',? `DFSJZJ` varchar(50) NOT NULL COMMENT '地方數據主鍵',? `XZQHDM` varchar(6) NOT NULL COMMENT '行政區劃代碼',? `SPLCBM` varchar(100) NOT NULL COMMENT '審批流程編碼',? `SPLCMC` varchar(200) NOT NULL COMMENT '審批流程名稱',? `SPLCBBH` double(4,1) NOT NULL COMMENT '審批流程版本號',? `SPLCSXSJ` datetime NOT NULL COMMENT '審批流程生效時間',? `SPLCLX` int(11) NOT NULL COMMENT '審批流程類型',? `SPLCSM` varchar(2000) DEFAULT NULL COMMENT 'SPLCSM',? `FJMC` varchar(512) NOT NULL COMMENT '附件名稱',? `FJLX` varchar(64) NOT NULL COMMENT '附件類型',? `FJID` varchar(100) NOT NULL COMMENT '附件ID',? `SJYXBS` int(11) NOT NULL COMMENT '數據有效標識',? `SJWXYY` varchar(200) DEFAULT NULL COMMENT '數據無效原因',? `SJSCZT` int(11) NOT NULL COMMENT '數據上傳狀態',? `SBYY` varchar(1000) DEFAULT NULL COMMENT '失敗原因',? PRIMARY KEY (`LSH`),? KEY `unique_main` (`XZQHDM`,`SPLCBM`,`SPLCBBH`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COMMENT='表1:地方項目審批流程信息表';

該表將LSH字段設置為自增主鍵,并默認auto_increment_increment=1、auto_increment_offset=1。

對該表執行show create table spgl_dfxmsplcxxb可以得到如下信息:

CREATE TABLE `spgl_dfxmsplcjdxxb` (? `LSH` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',? `DFSJZJ` varchar(50) NOT NULL COMMENT '地方數據主鍵',? `XZQHDM` varchar(6) NOT NULL COMMENT '行政區劃代碼',? `SPLCBM` varchar(100) NOT NULL COMMENT '審批流程編碼',? `SPLCBBH` double(4,1) NOT NULL COMMENT '審批流程版本號',? `SPJDBM` varchar(100) DEFAULT NULL COMMENT '審批階段編碼',? `SPJDMC` varchar(200) NOT NULL COMMENT '審批階段名稱',? `SPJDXH` int(11) NOT NULL COMMENT '審批階段序號',? `DYBZSPJDXH` varchar(200) NOT NULL COMMENT '對應標準審批階段序號',? `SPJDSX` int(11) NOT NULL COMMENT '審批階段時限',? `LCBSXLX` int(11) NOT NULL COMMENT '里程碑事項類型',? `SJYXBS` int(11) NOT NULL COMMENT '數據有效標識',? `SJWXYY` varchar(200) DEFAULT NULL COMMENT '數據無效原因',? `SJSCZT` int(11) NOT NULL COMMENT '數據上傳狀態',? `SBYY` varchar(1000) DEFAULT NULL COMMENT '失敗原因',? PRIMARY KEY (`LSH`),? KEY `unique_main` (`XZQHDM`,`SPLCBM`,`SPLCBBH`,`SPJDXH`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='表2:地方項目審批流程階段信息表'自增字段重復問題

對于表的記錄間互相拷貝問題很容易造成自增字段的重復。

例如在我經歷的一次項目:本地數據庫和前置數據庫進行數據同步時,本地庫向前置庫上傳數據,前置庫插入傳來的數據并返回自增字段流水號更本地庫。同步每3分種依據標志位檢查執行一次。

這樣,如果對本地庫數據進行多次修改,那么就需要向前置庫多次上傳該條記錄(或該條記錄的拷貝記錄)。

如果沒有在上傳前手動將前置庫返回的流水號置為空,那么前置庫將會用這個已有的流水號作為主鍵插入新數據(而不是重新生成新的流水號),從而導致主鍵重復的錯誤。

所以,在處理含有自增字段的表格時,如果自增字段和其他表格有數據上的關聯,應當注意這種操作會不會導致自增字段的沖突。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
主站蜘蛛池模板: 在线500福利视频国产 | 91精品国产人成网站 | 国产精品日产三级在线观看 | 特黄特黄特色大片免费观看 | 亚洲第一色站 | 国产视频高清在线观看 | 人成免费网站 | 一级片免费观看视频 | 亚洲欧美日韩在线观看你懂的 | 555夜色555亚洲夜色 | 中国大陆一级毛片 免费 | 久久国产成人精品 | 在线观看国产欧美 | 国产成人在线观看网站 | 综合激情区视频一区视频二区 | 亚洲综合极品香蕉久久网 | 亚洲 中文 欧美 日韩 在线人 | 久久精品一 | 午夜在线观看视频免费 成人 | 日韩免费黄色片 | 亚洲国产99999在线精品一区 | 在线欧美精品国产综合五月 | 1313午夜精品久久午夜片 | 免费一级特黄欧美大片勹久久网 | 精品老司机在线视频香蕉 | 亚洲欧洲日韩在线 | 日本人妖tubexxxx | 亚洲国产天堂久久九九九 | 成人三级在线播放 | 美国毛片一级 | 黄色六级片 | 大片黄色| 国产99久久精品 | 国精品日韩欧美一区二区三区 | 久热中文字幕在线观看 | 91探花视频在线观看 | 97香蕉超级碰碰碰久久兔费 | 久久青青草原精品国产麻豆 | 亚洲精品入口一区二区乱成人 | 网址在线观看 | 国产欧美日韩一区二区三区 |