濮阳杆衣贸易有限公司

主頁 > 知識庫 > Mysql自增主鍵id不是以此逐級遞增的處理

Mysql自增主鍵id不是以此逐級遞增的處理

熱門標(biāo)簽:話務(wù)外呼系統(tǒng)怎么樣 大眾點(diǎn)評星級酒店地圖標(biāo)注 400電話可以辦理嗎 智能外呼系統(tǒng)復(fù)位 臨清電話機(jī)器人 拉卡拉外呼系統(tǒng) 高清地圖標(biāo)注道路 外東北地圖標(biāo)注 云南電商智能外呼系統(tǒng)價(jià)格

Mysql自增主鍵id不是以此逐級遞增

一、介紹

在mysql數(shù)據(jù)庫添加數(shù)據(jù)時(shí)使用ON DUPLICATE KEY UPDATE進(jìn)行數(shù)據(jù)更新時(shí)可能會出現(xiàn)id不是逐級以此遞增的,而是間斷遞增。

如id從10下次添加可能就是15或者其他的數(shù)字,兩個(gè)數(shù)字之間間隔是ON DUPLICATE KEY UPDATE執(zhí)行的次數(shù),也就是說ON DUPLICATE KEY UPDATE在執(zhí)行更新的時(shí)候把該表主鍵進(jìn)行自增加一。

如圖所示

二、問題介紹

在對于同一個(gè)表進(jìn)行新增和修改時(shí)我用了兩個(gè)mapper接口方法,也就是說使用了兩次ON DUPLICATE KEY UPDATE操作,這樣就會導(dǎo)致該表主鍵在你更新的時(shí)候就進(jìn)行自增了。等到下次insert時(shí)就會出現(xiàn)不是逐級遞增了。

三、解決方法

將數(shù)據(jù)庫的insert和update進(jìn)行拆分。

自增主鍵的優(yōu)缺點(diǎn)

自增主鍵

這種方式是使用數(shù)據(jù)庫提供的自增數(shù)值型字段作為自增主鍵,它的優(yōu)點(diǎn)是:

(1)數(shù)據(jù)庫自動編號,速度快,而且是增量增長,按順序存放,對于檢索非常有利;

(2)數(shù)字型,占用空間小,易排序,在程序中傳遞也方便;

(3)如果通過非系統(tǒng)增加記錄時(shí),可以不用指定該字段,不用擔(dān)心主鍵重復(fù)問題。

其實(shí)它的缺點(diǎn)也就是來自其優(yōu)點(diǎn),缺點(diǎn)如下:

(1)因?yàn)樽詣釉鲩L,在手動要插入指定ID的記錄時(shí)會顯得麻煩,尤其是當(dāng)系統(tǒng)與其它系統(tǒng)集成時(shí),需要數(shù)據(jù)導(dǎo)入時(shí),很難保證原系統(tǒng)的ID不發(fā)生主鍵沖突(前提是老系統(tǒng)也是數(shù)字型的)。特別是在新系統(tǒng)上線時(shí),新舊系統(tǒng)并行存在,并且是異庫異構(gòu)的數(shù)據(jù)庫的情況下,需要雙向同步時(shí),自增主鍵將是你的噩夢;

(2)在系統(tǒng)集成或割接時(shí),如果新舊系統(tǒng)主鍵不同是數(shù)字型就會導(dǎo)致修改主鍵數(shù)據(jù)類型,這也會導(dǎo)致其它有外鍵關(guān)聯(lián)的表的修改,后果同樣很嚴(yán)重;

(3)若系統(tǒng)也是數(shù)字型的,在導(dǎo)入時(shí),為了區(qū)分新老數(shù)據(jù),可能想在老數(shù)據(jù)主鍵前統(tǒng)一加一個(gè)字符標(biāo)識(例如“o”,old)來表示這是老數(shù)據(jù),那么自動增長的數(shù)字型又面臨一個(gè)挑戰(zhàn)。

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

您可能感興趣的文章:
  • MySQL中的主鍵以及設(shè)置其自增的用法教程
  • mysql修改自增長主鍵int類型為char類型示例
  • MySQL的自增ID(主鍵) 用完了的解決方法
  • 淺談MySQL中的自增主鍵用完了怎么辦
  • MySQL8新特性:自增主鍵的持久化詳解
  • mysql非主鍵自增長用法實(shí)例分析
  • 詳解MySQL自增主鍵的實(shí)現(xiàn)
  • 為什么mysql自增主鍵不是連續(xù)的

標(biāo)簽:福州 三明 無錫 揚(yáng)州 溫州 阿里 山西 定西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql自增主鍵id不是以此逐級遞增的處理》,本文關(guān)鍵詞  Mysql,自增,主鍵,不是,以此,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mysql自增主鍵id不是以此逐級遞增的處理》相關(guān)的同類信息!
  • 本頁收集關(guān)于Mysql自增主鍵id不是以此逐級遞增的處理的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    宁南县| 华亭县| 理塘县| 伊金霍洛旗| 阿坝县| 北碚区| 从化市| 上犹县| 翁牛特旗| 三江| 台山市| 汪清县| 宝鸡市| 新建县| 潼关县| 磐安县| 六枝特区| 闽清县| 察雅县| 盖州市| 长宁县| 新和县| 张家口市| 佛山市| 简阳市| 台中市| 道真| 滦南县| 肃宁县| 左权县| 元阳县| 广南县| 佛冈县| 漠河县| 和政县| 潮安县| 台中县| 始兴县| 松原市| 德阳市| 赤城县|