一、獲取自增值方法:
-
select max(id) from tbname:實際是選出表格最大id;
-
select @@identity或select last_insert_id:這兩個選取最後插入數據的自增ID,與所操作的表格無關;若用一條insert語句同時插入多條自增記錄,則選出的是第一條的自增ID(此方法在不同客戶端對同一表格進行操作不會互相影響所選出的自增值);插入非0、非null值不會對查詢結果產生影響,如:
-
mysql> select*from test2; +----+------+ | id | name | +----+------+ | 1 | a | | 2 | f | | 3 | c | | 4 | a | | 6 | d | +----+------+ 5 rows in set mysql> insert into test2 values(25,'a'); Query OK, 1 row affected mysql> select @@identity; +------------+ | @@identity | +------------+ | 0 | +------------+ 1 row in set mysql> select last_insert_id(); +------------------+ | last_insert_id() | +------------------+ | 0 | +------------------+ 1 row in set
-
show table status like '%tbname%':查看錶格信息,有一行信息爲下一個自增值,注意即使手動將之前的記錄刪除,自增值也不會往回減少,只會繼續增加;
-
從information_schema表中選出信息:
mysql> select table_name,auto_increment from information_schema.tables where table_name
-> ='test2';
+------------+----------------+
| table_name | auto_increment |
+------------+----------------+
| test2 | 3 |
+------------+----------------+
1 row in set
二、重置自增值:
自增列記錄刪除後,自增值依舊按照之前的繼續增加,手動添加記錄,例如當前自增ID爲5,手動添加記錄ID爲10。
重置自增值語句:alter table tbname auto_increment=1; 只有對無記錄的自增列才能重置,例如有一條記錄爲ID=6,即使使用重置語句,自增值依然會從7算起: