亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

mysql修改自增主鍵數值無效

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

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

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

查詢AUTO_INCRMENT數值發(fā)現數值為null

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

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

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

自增字段的定義和題外話

看一個數據表的創(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 '地方數據主鍵',
? `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 '數據有效標識',
? `SJWXYY` varchar(200) DEFAULT NULL COMMENT '數據無效原因',
? `SJSCZT` int(11) NOT NULL COMMENT '數據上傳狀態(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字段設置為自增主鍵,并默認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 '地方數據主鍵',
? `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 '對應標準審批階段序號',
? `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 '數據上傳狀態(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:地方項目審批流程階段信息表'

自增字段重復問題

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

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

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

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

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

總結

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

相關文章

  • 解決MySQL Sending data導致查詢很慢問題的方法與思路

    解決MySQL Sending data導致查詢很慢問題的方法與思路

    這篇文章主要介紹了解決MySQL Sending data導致查詢很慢問題的方法與思路,感興趣的小伙伴們可以參考一下
    2016-04-04
  • MySQL刪除外鍵時報錯Error?Code:1091.?Can‘t?DROP?‘XXX‘的解決方法

    MySQL刪除外鍵時報錯Error?Code:1091.?Can‘t?DROP?‘XXX‘的解決方法

    這篇文章主要給大家介紹了關于MySQL刪除外鍵時報錯Error?Code:1091.?Can‘t?DROP?‘XXX‘的解決方法,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-08-08
  • 面試被問select......for update會鎖表還是鎖行

    面試被問select......for update會鎖表還是鎖行

    select … for update 是我們常用的對行加鎖的一種方式,那么select......for update會鎖表還是鎖行,本文就詳細的來介紹一下,感興趣的可以了解一下
    2021-11-11
  • MySQL連接池DataSource的使用及實踐

    MySQL連接池DataSource的使用及實踐

    DruidDataSource作為一款優(yōu)秀的數據庫連接池組件,不僅提供了高效的連接管理,還包含了豐富的監(jiān)控和診斷功能,本文主要介紹了MySQL連接池DataSource的使用及實踐,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • mysql5.7安裝教程(windows)

    mysql5.7安裝教程(windows)

    這篇文章主要為大家詳細介紹了windows下mysql5.7安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • MySQL不支持InnoDB的解決方法

    MySQL不支持InnoDB的解決方法

    在OpenSUSE下裝上MySQL后,發(fā)現無法選擇添加事務支持數據引擎InnoDB。
    2009-11-11
  • Mysql桌面工具之SQLyog資源及激活使用方法告別黑白命令行

    Mysql桌面工具之SQLyog資源及激活使用方法告別黑白命令行

    這篇文章主要介紹了Mysql桌面工具之SQLyog資源及激活使用方法告別黑白命令行,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • mysql判斷查詢條件是否包含某字符串的7種方式

    mysql判斷查詢條件是否包含某字符串的7種方式

    本文主要介紹了mysql判斷查詢條件是否包含某字符串,主要介紹了7種方式,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 詳解MySQL中的視圖

    詳解MySQL中的視圖

    視圖是一個虛擬表,非真實存在,其本質是根據SQL語句獲取動態(tài)的數據集,并為其命名,用戶使用時只需使用視圖名稱即可獲取結果集,并可以將其當作表來使用,這篇文章主要介紹了MySQL的視圖,需要的朋友可以參考下
    2022-12-12
  • 如何在服務器部署MySQL

    如何在服務器部署MySQL

    這篇文章主要介紹了如何在服務器部署MySQL,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-04-04

最新評論