MySQL 更新并返回计数

对于想使用 MySQL 实现简单 ID 分配器, 一般就是设置一个整数字段, 然后想分配的时候加 1 并返回. 新手往往犯错误, 先执行一条 update 语句, 然后再 select 那个字段. 但这是错误的!
CREATE TABLE `mytable` (
`counter` int(10) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into mytable values(1);

正确的方式应该是使用 last_insert_id() 函数:

update mytable set counter=last_insert_id(counter+1);
select last_insert_id();

转:http://www.ideawu.net/blog/archives/816.html

另一种方法:

http://imysql.cn/2010/07/01/mysql-faq-using-mysql-as-serial-generator.html