- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會(huì )理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構許可:滇D3-20230001
- 代理域名注冊服務(wù)機構:新網(wǎng)數碼
truncate 刪除數據,導致自動(dòng)清空自增 ID,前端返回報錯 not found
這個(gè)問(wèn)題的出現,就要考慮下 truncate 和 delete 的區別了,看下實(shí)驗演練:
首先先創(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
插入三條數據:
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 進(jìn)行刪除全表信息,再插入新值。
結果發(fā)現 truncate 把自增初始值重置了,自增屬性從 1 開(kāi)始記錄了。當前端用主鍵 id 進(jìn)行查詢(xún)時(shí),就會(huì )報沒(méi)有這條數據的錯誤。
個(gè)人建議不要使用 truncate 對表進(jìn)行刪除操作,雖然可以回收表空間,但是會(huì )涉及自增屬性問(wèn)題。這些坑,我們不要輕易鉆進(jìn)去。
售前咨詢(xún)
售后咨詢(xún)
備案咨詢(xún)
二維碼
TOP