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

Mysql更新自增主鍵id遇到的問題

 更新時間:2021年11月30日 16:35:01   作者:code1Boy  
本文主要介紹了Mysql更新自增主鍵id遇到的問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下<BR>

本是一個自己知道的問題,還是差點踩坑(差點忘了,還好上線前整理上線點時想起來了),特此記錄下來

為什么要更新自增id

我是因為歷史業(yè)務(wù)上的坑,導(dǎo)致必須更新一批id,且為了避免沖突需要將id擴大多少倍進(jìn)行更新,因為我這個表的數(shù)據(jù)數(shù)量不高,屬于高讀低寫的情況,所以就簡單的擴大了1000

問題

MySQL中如果我們把自增主鍵更新為更大的值(例如現(xiàn)在自增id最大值是1000,你更新id=49這個記錄到id=1049),MySQL并不會把表的自增值修改為更新后的值,在某些情況下,如DDL,重啟等之后,業(yè)務(wù)開始報錯,這時如果不知道當(dāng)前操作可能會誤認(rèn)為是當(dāng)前業(yè)務(wù)操作的問題,實則是因為更新id埋下的坑(主鍵沖突)
如下圖:

圖1:更新前原始數(shù)據(jù)

原始數(shù)據(jù)

執(zhí)行更新語句

update test set id = 10 where id = 2;

圖2:更新后的數(shù)據(jù)

更新后數(shù)據(jù)

執(zhí)行新的插入語句

insert test (name) values ('dddd')

圖3:插入的新數(shù)據(jù)

插入新數(shù)據(jù)后

想必這時大家也都看出問題了,更新后可能剛開始沒有問題,但當(dāng)自增id追上你更新的最大值后,id沖突在所難免了。。。

如何解決

1.如果是個人測試庫,不怎么重要,可以重啟數(shù)據(jù)庫
2.當(dāng)然線上數(shù)據(jù)庫是沒法按照1這種方式搞了,除非你很任性(還需要dba陪著你任性),,,這時可以嘗試指定id插入一條業(yè)務(wù)上無意義的數(shù)據(jù),例如軟刪除的數(shù)據(jù),(我的案列表沒有軟刪除標(biāo)識,大家可以意會下)

insert test (id,name) values (20,'eeee');

操作后如圖:

指定id插入

在執(zhí)行下面SQL語句,對照結(jié)果

insert test (name) values ('ffff');

對照結(jié)果

此時自增id已從最大值開始自增了

找資料發(fā)現(xiàn),這個BUG在2005年就被提出了,因為性能以及場景很少的沒有被修復(fù);這個問題在MySQL 8.0.11中表現(xiàn)正常。

到此這篇關(guān)于Mysql更新自增主鍵id遇到的問題的文章就介紹到這了,更多相關(guān)Mysql更新自增主鍵id內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql-8.0.15-winx64 使用zip包進(jìn)行安裝及服務(wù)啟動后立即關(guān)閉問題

    mysql-8.0.15-winx64 使用zip包進(jìn)行安裝及服務(wù)啟動后立即關(guān)閉問題

    這篇文章主要介紹了mysql 使用zip包進(jìn)行安裝以及服務(wù)啟動后立即關(guān)閉問題 ,本實例使用的mysql版本為mysql-8.0.15-winx64,需要的朋友可以參考下
    2019-05-05
  • mysql 編碼設(shè)置命令

    mysql 編碼設(shè)置命令

    mysql 編碼設(shè)置命令,需要的朋友可以參考下。
    2009-10-10
  • 詳解MySQL雙活同步復(fù)制四種解決方案

    詳解MySQL雙活同步復(fù)制四種解決方案

    這篇文章主要介紹了MySQL 雙活同步復(fù)制四種方案,主從復(fù)制分成三步,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • MySQL分區(qū)表的基本入門教程

    MySQL分區(qū)表的基本入門教程

    這篇文章主要給大家介紹了關(guān)于MySQL分區(qū)表的基本入門教程,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • MySQL特定表全量、增量數(shù)據(jù)同步到消息隊列-解決方案

    MySQL特定表全量、增量數(shù)據(jù)同步到消息隊列-解決方案

    mysql要同步原始全量數(shù)據(jù),也要實時同步MySQL特定庫的特定表增量數(shù)據(jù),同時對應(yīng)的修改、刪除也要對應(yīng),下面就為大家分享一下
    2021-11-11
  • mysql設(shè)置某字段不能重復(fù)問題

    mysql設(shè)置某字段不能重復(fù)問題

    這篇文章主要介紹了mysql設(shè)置某字段不能重復(fù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • MySQL統(tǒng)計高頻用戶實現(xiàn)方法詳解

    MySQL統(tǒng)計高頻用戶實現(xiàn)方法詳解

    這篇文章主要介紹了MySQL統(tǒng)計高頻用戶實現(xiàn)的相關(guān)資料,文中通過示例代碼講解了如何用SQL實現(xiàn)數(shù)據(jù)清洗、分組聚合與排序,識別高頻用戶,用于活躍度分析和異常檢測,需要的朋友可以參考下
    2025-05-05
  • mysql5.7.14 解壓版安裝配置方法圖文教程(win10)

    mysql5.7.14 解壓版安裝配置方法圖文教程(win10)

    這篇文章主要為大家詳細(xì)介紹了win10下mysql5.7.14 winx64安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • MySQL的binlog日志使用詳解

    MySQL的binlog日志使用詳解

    這篇文章主要介紹了MySQL的binlog日志使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • mysql中索引與FROM_UNIXTIME的問題

    mysql中索引與FROM_UNIXTIME的問題

    這篇文章主要介紹了mysql中索引與FROM_UNIXTIME的問題的相關(guān)資料,需要的朋友可以參考下
    2017-05-05

最新評論

临武县| 石景山区| 专栏| 桑植县| 灯塔市| 贵定县| 开原市| 马山县| 嘉禾县| 彭阳县| 崇信县| 察隅县| 鄄城县| 巢湖市| 锡林浩特市| 淮安市| 莱西市| 津南区| 南华县| 吉林省| 玛纳斯县| 西乡县| 株洲县| 新宾| 太康县| 柳林县| 平果县| 台东市| 宜昌市| 长武县| 太谷县| 马鞍山市| 台北县| 吉水县| 武山县| 文安县| 资中县| 凌云县| 宜都市| 利辛县| 泰兴市|