查看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的自增列AUTO1. 支持设置自增列的值
1
ALTER TABLE table_name AUTO_INCREMENT = 1
不过这种方式只能设置大于当前使用的值,不能设置小于等于当前已经使用的自增列的值。myisam如果设置小于等于,则自增列的值会自动设置为 当前最大值加1。innodb则不会改变。
2.通过TRUNCATE把自增列设置为0,从MySQL 5.0.13开始TRUNCATE就能重置自增列为0.myisam和innode都是如此。
1
TRUNCATE TABLE table_name
3.drop和create重建表方式重置自增列为0
1
2
DROP TABLE table_name
CREATE TABLE table_name { ... }
1.用sql工具执行show variables like‘%sql_mode%’
2.如果重启之后不成功, 注意检查你的my.ini 或者 my.cnf 有没改对,是不是有多个同名字的配置文件, 也有可能叫sql-mode 或sql_mode 注意中间的‘-’ 或 ‘_’
mysql的sql_mode合理设置,sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法 *** 作的,比如允许一些非法数据的插入。在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题 。
ONLY_FULL_GROUP_BY,对于GROUP BY聚合 *** 作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中
NO_AUTO_VALUE_ON_ZERO,该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)