mysql auto_increment 自動增長 清空表 自動增長情況
阿新 • • 發佈:2018-11-02
清空表情況:
mysql> delete from t20; Query OK, 7 rows affected (0.00 sec) mysql> show create table t20\G; *************************** 1. row *************************** Table: t20 Create Table: CREATE TABLE `t20` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(16) DEFAULTNULL, UNIQUE KEY `id` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 1 row in set (0.00 sec)
清空表後 AUTO_INCREMENT=11 沒有改變 自增長欄位的值沒有置為1
對於自增欄位,在用delete刪除後,再插入值,該欄位仍然按照刪除前的位置增長
從11開始
mysql> insert into t20(name) values('mike'); Query OK,1 row affected (0.01 sec) mysql> select * from t20; +----+------+ | id | name | +----+------+ | 11 | mike | +----+------+ 1 row in set (0.00 sec)
清空表不要用delete清
delete 用在和where語句配合
delete from t20 where id=3;
用在刪除固定的記錄
用truncate
truncate是直接清空表,在刪除大表時用它
mysql> show create table t20\G; ***************************1. row *************************** Table: t20 Create Table: CREATE TABLE `t20` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(16) DEFAULT NULL, UNIQUE KEY `id` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 1 row in set (0.00 sec) ERROR: No query specified mysql> truncate t20; Query OK, 0 rows affected (0.02 sec)
自增長欄位沒有了
mysql> show create table t20\G; *************************** 1. row *************************** Table: t20 Create Table: CREATE TABLE `t20` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(16) DEFAULT NULL, UNIQUE KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec)
再插入記錄
mysql> insert into t20(name) values('jack'); Query OK, 1 row affected (0.00 sec) mysql> select * from t20; +----+------+ | id | name | +----+------+ | 1 | jack | +----+------+ 1 row in set (0.00 sec)
從1開始了
清空表:
delete from t1; #如果有自增id,新增的資料,仍然是以刪除前的最後一樣作為起始。
truncate table t1;資料量大,刪除速度比上一條快,且直接從零開始,