MySQL 設(shè)置AUTO_INCREMENT 無效的問題解決
一、修改 AUTO_INCREMENT 的值。
執(zhí)行 sql 如下,“tablename” 為數(shù)據(jù)表名稱。
注意:修改的 auto_increment 的值得大于現(xiàn)有主鍵的最大值。否則,語句不報(bào)錯(cuò),但不會生效(這里需要特別注意,我之前一直沒成功是因?yàn)楸砝镉幸粋€(gè)很大的值20284665,需要更改到數(shù)據(jù)表最大數(shù)量值)。
可以嘗試-目錄是重置數(shù)據(jù)的id(執(zhí)行前備份CREATE TABLE tablename_back AS SELECT * FROM tablename;)
SET @row_number = 0;
UPDATE tablename SET id = (@row_number:=@row_number + 1);
這種方法線上環(huán)境慎用,開放環(huán)境需進(jìn)行多次驗(yàn)證
ALTER TABLE tablename AUTO_INCREMENT=1001;
二、修改后查詢一下 AUTO_INCREMENT 的值,執(zhí)行下面 sql 可查詢(結(jié)果發(fā)現(xiàn)還是修改之前的值)
SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name="tablename";
三、分析數(shù)據(jù)表。重新分析一下數(shù)據(jù)表即可,執(zhí)行如下 sql。
analyze table tablename;
分析數(shù)據(jù)表之后,在執(zhí)行第二步中的查詢即可看到 auto_increment 的值修改成功。
快速設(shè)置Mysql的auto_increment參數(shù)
在使用mysql時(shí),在導(dǎo)入數(shù)據(jù)后經(jīng)常需要修改auto_increment參數(shù),如果數(shù)據(jù)比較多時(shí),執(zhí)行效果非常緩慢。在3500萬數(shù)據(jù)表上修改auto_increment參數(shù),大概需要10分17秒(本地mac機(jī)器上測試,在服務(wù)器稍微好點(diǎn),但是也很慢),通過摸索,發(fā)現(xiàn)另外一個(gè)方法可以巧妙的設(shè)置auto_increment參數(shù)。
以表A為例,說明如何設(shè)置auto_increment 的值為3500萬。
1、利用insert語句修改auto_increment值,再利用回滾去掉插入數(shù)據(jù),但是修改后的auto_increment值不會被回滾
begin work; insert into A(id,field) values (34999999,'test'); rollback;
2、查看修改后的值
show tables
到此這篇關(guān)于MySQL 設(shè)置AUTO_INCREMENT 無效的問題解決的文章就介紹到這了,更多相關(guān)MySQL AUTO_INCREMENT 無效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL自增鎖(Auto-Increment Lock) 的原理使用
- mysql?自增長約束(auto_increment)的使用
- MySQL自增列解析(Auto_increment)
- MySQL中使用auto_increment修改初始值和步長
- MySQL AUTO_INCREMENT 主鍵自增長的實(shí)現(xiàn)
- 詳細(xì)聊聊MySQL中auto_increment有什么作用
- MySQL 序列 AUTO_INCREMENT詳解及實(shí)例代碼
- MySQL查詢和修改auto_increment的方法
- 解析mysql中的auto_increment的問題
- 怎么重置mysql的自增列AUTO_INCREMENT初時(shí)值
相關(guān)文章
Windows Server 2003下修改MySQL 5.5數(shù)據(jù)庫data目錄
這篇文章主要介紹了Windows Server 2003下修改MySQL 5.5數(shù)據(jù)庫data目錄,需要的朋友可以參考下2016-04-04
設(shè)置MySQL中的數(shù)據(jù)類型來優(yōu)化運(yùn)行速度的實(shí)例
這篇文章主要介紹了設(shè)置MySQL中索引的數(shù)據(jù)類型來優(yōu)化運(yùn)行速度的實(shí)例,主要是適當(dāng)使用短字節(jié)的數(shù)據(jù)類型來處理短索引,需要的朋友可以參考下2015-05-05
MySQL ORDER BY 的實(shí)現(xiàn)分析
總的來說,在 MySQL 中的ORDER BY有兩種排序?qū)崿F(xiàn)方式,一種是利用有序索引獲取有序數(shù)據(jù),另一種則是通過相應(yīng)的排序算法,將取得的數(shù)據(jù)在內(nèi)存中進(jìn)行排序2012-07-07
MySQL數(shù)據(jù)庫?觸發(fā)器?trigger
這篇文章主要介紹了MySQL數(shù)據(jù)庫?觸發(fā)器?trigger,觸發(fā)器是一種特殊類型的存儲過程,觸發(fā)器通過事件進(jìn)行觸發(fā)而被執(zhí)行,可通過數(shù)據(jù)庫中的相關(guān)表實(shí)現(xiàn)級聯(lián)更改,保證數(shù)據(jù)安全,進(jìn)行安全校驗(yàn)2022-06-06

