- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機構(gòu):新網(wǎng)數(shù)碼
truncate 刪除數(shù)據(jù),導(dǎo)致自動清空自增 ID,前端返回報錯 not found
這個問題的出現(xiàn),就要考慮下 truncate 和 delete 的區(qū)別了,看下實驗演練:
首先先創(chuàng)建一張表:
CREATE TABLE `t` ( `a` int(11) NOT NULL AUTO_INCREMENT, `b` varchar(20) DEFAULT NULL, PRIMARY KEY (`a`), KEY `b` (`b`) ) ENGINE=InnoDB AUTO_INCREMENT=300 DEFAULT CHARSET=utf8
插入三條數(shù)據(jù):
mysql> insert into t (b) values (‘a(chǎn)a’); Query OK, 1 row affected (0.00 sec) mysql> insert into t (b) values (‘bb’); Query OK, 1 row affected (0.00 sec) mysql> insert into t (b) values (‘cc’); Query OK, 1 row affected (0.00 sec) mysql> select * from t; +—–+——+ | a | b | +—–+——+ | 300 | aa | | 301 | bb | | 302 | cc | +—–+——+ 3 rows in set (0.00 sec)
先用 delete 進行刪除全表信息,再插入新值。
結(jié)果發(fā)現(xiàn) truncate 把自增初始值重置了,自增屬性從 1 開始記錄了。當前端用主鍵 id 進行查詢時,就會報沒有這條數(shù)據(jù)的錯誤。
個人建議不要使用 truncate 對表進行刪除操作,雖然可以回收表空間,但是會涉及自增屬性問題。這些坑,我們不要輕易鉆進去。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP