萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql中autoincrement修改方法介紹

mysql中autoincrement修改方法介紹

在mysql中我們只要把字段設置屬性為autoincrement了就會發現這個類型的字段的長度會自動增長了,如我們設置步長為1這個就會1,2,3這種來了,具體下文深入的分析一下。

1。直接復位自動增量值

ALTER TABLE語法提供了一種方法來重新設置自動增量列。采取看看下面的例子。

ALTER TABLE table_name AUTO_INCREMENT = 1;

請注意,你不能重置計數器的值小於或等於任何已使用的。對於MyISAM,如果該值小於或等於目前在AUTO_INCREMENT列的最大值,該值是目前最大的加一復位。對於InnoDB,如果該值大於當前列中的最大值,沒有出現錯誤和不改變當前序列值。

mysql>
mysql> alter table t2 auto_increment=2;
Query OK, 6 rows affected (0.04 sec)
Records: 6  Duplicates: 0  Warnings: 0

修改mysql表中的自增字段,Mysql中自增字段(AUTO_INCREMENT)的一些常識,MySQL AUTO_INCREMENT

如果還沒看懂接著看

查看db.table表的下一條記錄auto_increment的值:
show
table status from db like 'table';

如:
mysql>
show table status from mailbox like 'mailbox';        
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
|
Name    | Engine | Version | Row_format | Rows | Avg_row_length | Data_length |
Max_data_length | Index_length | Data_free |Auto_increment|
Create_time         | Update_time         | Check_time          |
Collation         | Checksum | Create_options | Comment |
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
|
mailbox | MyISAM |      10 | Dynamic    | 1681 |            148 |      249688 |
281474976710655 |       104448 |         0 |         15355|
2012-03-13 11:19:10 | 2012-03-13 11:19:10 | 2012-03-13 11:19:10 |
latin1_swedish_ci |     NULL |                |         |
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
1
row in set (0.00 sec)

Auto_increment:15355
這個就是下一條記錄會使用的自增ID;


修改db.table表下一條記錄使用的自增ID值為20000:
alter
table db.table auto_increment=20000;

如:
mysql> alter table
mailbox.mailbox auto_increment=20000;         
Query OK, 1681 rows affected
(0.05 sec)

這時再進行show table
status from mailbox like 'mailbox';

auto_increment已經變成20000;

新插入的記錄,自增字段就會從20000開始;

注意:

使用MySQL Query Browser中可以很方便的實現,使用命令行的話可以使用alter  table 表名 modify column來實現。
ALTER TABLE `c`.`a` MODIFY COLUMN `a` BIGINT(20)  NOT NULL AUTO_INCREMENT;
在執行這個命令時,可能會遇到這個錯誤:
ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1' for key 'PRIMARY'
在網上找到的解決方法是將表中主鍵為0的記錄刪除,試了一下,果然可以。

copyright © 萬盛學電腦網 all rights reserved