举例说明:
CREATE TABLE `books` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(10) NOT NULL, `count` smallint(5) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
插入数据
insert into books set name='aaa'; insert into books set name='bbb'; insert into books set name='ccc';
此时自增主键最大值是3;
在进行重复主键的操作 ON DUPLICATE KEY UPDATE
insert into books set name='ccc' ON DUPLICATE KEY UPDATE count=count+1;
再次插入一条数据
insert into books set name='ddd';
此时自增主键最大值是5;
一直迷惑 4 去哪里了,今天终于让我找出原因了。 详情参看mysql的参数 innodb_autoinc_lock_mode
主要参考:
http://dinglin.iteye.com/blog/1279536
http://whitesock.iteye.com/blog/1329857
http://www.mysqlops.com/2011/12/05/innodb-auto-increment.html
http://hi.baidu.com/thinkinginlamp/item/a0320c82233c6c2a100ef3d0