最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2023年07月14日 10:12:01   作者:我與bug斗智斗勇  
這篇文章主要介紹了mysql修改自增主鍵數(shù)值無效的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mysql修改自增主鍵數(shù)值無效

假如你的數(shù)據(jù)表中的數(shù)據(jù)如下圖所示:

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

此時再次添加數(shù)據(jù)并查詢所有數(shù)據(jù),發(fā)現(xiàn)主鍵id居然依舊從100開始繼續(xù)增長

查詢AUTO_INCRMENT數(shù)值發(fā)現(xiàn)數(shù)值為null

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

mysql自增主鍵重復(fù)問題的可能

MySQL支持?jǐn)?shù)據(jù)字段自增,可以用來作為數(shù)據(jù)表的主鍵字段。

自增字段的定義和題外話

看一個數(shù)據(jù)表的創(chuàng)建實例:

DROP TABLE IF EXISTS `spgl_dfxmsplcxxb`;
CREATE TABLE `spgl_dfxmsplcxxb` (
? `LSH` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',
? `DFSJZJ` varchar(50) NOT NULL COMMENT '地方數(shù)據(jù)主鍵',
? `XZQHDM` varchar(6) NOT NULL COMMENT '行政區(qū)劃代碼',
? `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 '數(shù)據(jù)有效標(biāo)識',
? `SJWXYY` varchar(200) DEFAULT NULL COMMENT '數(shù)據(jù)無效原因',
? `SJSCZT` int(11) NOT NULL COMMENT '數(shù)據(jù)上傳狀態(tài)',
? `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字段設(shè)置為自增主鍵,并默認(rèn)auto_increment_increment=1、auto_increment_offset=1。

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

CREATE TABLE `spgl_dfxmsplcjdxxb` (
? `LSH` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',
? `DFSJZJ` varchar(50) NOT NULL COMMENT '地方數(shù)據(jù)主鍵',
? `XZQHDM` varchar(6) NOT NULL COMMENT '行政區(qū)劃代碼',
? `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 '對應(yīng)標(biāo)準(zhǔn)審批階段序號',
? `SPJDSX` int(11) NOT NULL COMMENT '審批階段時限',
? `LCBSXLX` int(11) NOT NULL COMMENT '里程碑事項類型',
? `SJYXBS` int(11) NOT NULL COMMENT '數(shù)據(jù)有效標(biāo)識',
? `SJWXYY` varchar(200) DEFAULT NULL COMMENT '數(shù)據(jù)無效原因',
? `SJSCZT` int(11) NOT NULL COMMENT '數(shù)據(jù)上傳狀態(tài)',
? `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:地方項目審批流程階段信息表'

自增字段重復(fù)問題

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

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

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

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

所以,在處理含有自增字段的表格時,如果自增字段和其他表格有數(shù)據(jù)上的關(guān)聯(lián),應(yīng)當(dāng)注意這種操作會不會導(dǎo)致自增字段的沖突。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mysql常見的驅(qū)動程序使用

    Mysql常見的驅(qū)動程序使用

    MySQL驅(qū)動程序是連接應(yīng)用程序與MySQL數(shù)據(jù)庫的重要組件,本文主要介紹了Mysql常見的驅(qū)動程序使用,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • MySQL?varchar(n)能存儲幾個漢字

    MySQL?varchar(n)能存儲幾個漢字

    這篇文章主要介紹了MySQL varchar(n)能存儲幾個漢字,MySQL中varchar(n)表示n個字符,無論漢字和英文,Mysql都能存入n個字符,僅是實際字節(jié)長度有所區(qū)別,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • MySQL CHAR和VARCHAR該如何選擇

    MySQL CHAR和VARCHAR該如何選擇

    MySQL 支持字符串的數(shù)據(jù)類型并不多,但是卻有多種變化形式。MySQL 5.0以后更是支持每一列字符串可以有自己的字符集以及排序規(guī)則,這使得數(shù)據(jù)表設(shè)計更為復(fù)雜。本篇介紹字符類型的數(shù)據(jù)表字段 CHAR 和 VARCHAR 該如何選擇。
    2021-05-05
  • mysql存儲過程實現(xiàn)split示例

    mysql存儲過程實現(xiàn)split示例

    這篇文章主要介紹了mysql存儲過程實現(xiàn)split示例,需要的朋友可以參考下
    2014-05-05
  • mysql語句如何插入含單引號或反斜杠的值詳解

    mysql語句如何插入含單引號或反斜杠的值詳解

    這篇文章主要給大家介紹了關(guān)于mysql語句如何插入含單引號或反斜杠的值的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • MySQL 中的自定義變量用法、場景與最容易踩的坑

    MySQL 中的自定義變量用法、場景與最容易踩的坑

    MySQL自定義變量是一種靈活的機制,可以用于臨時存儲和計算,但容易被誤用,本文介紹了自定義變量的基本用法、典型使用場景以及容易踩的坑,建議在復(fù)雜SQL中謹(jǐn)慎使用,并推薦使用窗口函數(shù)、子查詢等替代方案,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • 在MySQL中實現(xiàn)基于時間點的數(shù)據(jù)恢復(fù)

    在MySQL中實現(xiàn)基于時間點的數(shù)據(jù)恢復(fù)

    在MySQL中實現(xiàn)基于時間點的數(shù)據(jù)恢復(fù)是一個復(fù)雜但可行的過程,主要依賴于MySQL的二進制日志(Binary Log),本文介紹了實現(xiàn)此功能的一般步驟,并有詳細的代碼供大家參考,需要的朋友可以參考下
    2024-03-03
  • mysql 8.0.12 安裝配置方法圖文教程

    mysql 8.0.12 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.12 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • PHP mysqli擴展庫 預(yù)處理技術(shù)的使用分析

    PHP mysqli擴展庫 預(yù)處理技術(shù)的使用分析

    本篇文章,介紹了PHP mysqli擴展庫 預(yù)處理技術(shù)的使用分析。需要的朋友參考下
    2013-05-05
  • MySQL服務(wù)器線程數(shù)的查看方法詳解

    MySQL服務(wù)器線程數(shù)的查看方法詳解

    這篇文章主要介紹了MySQL服務(wù)器線程數(shù)的查看方法,結(jié)合實例形式分析了mysql線程數(shù)查看的相關(guān)命令、配置、參數(shù)及相關(guān)使用技巧,需要的朋友可以參考下
    2018-03-03

最新評論

芦山县| 南溪县| 咸宁市| 大荔县| 读书| 耒阳市| 新兴县| 商城县| 汉中市| 会泽县| 襄汾县| 凤阳县| 太仆寺旗| 加查县| 修武县| 水城县| 拉萨市| 乌兰察布市| 陇南市| 酉阳| 松溪县| 青龙| 宁蒗| 乐平市| 茌平县| 互助| 静乐县| 扎兰屯市| 玛曲县| 琼结县| 政和县| 福清市| 宜昌市| 巴中市| 南投县| 宕昌县| 扎兰屯市| 腾冲县| 南投市| 镇雄县| 临桂县|