请教如何mysql中数据递增的问题

renzaijiang 2009-11-28 10:03:43
如果我要每条记录中有个字段保持随加入时间的顺序递增怎么做

比如说有 表

拍卖轮数表
有个字段为轮数

比如第一次加入数据1 ,第二次加入数据2 ,然后删除了2 ,第三次加入的时候是3 ,而不是4 就是跟着这个表中最大的字段
接着往下编

我想的方案是 每次插入数据的时候到里面select max(轮数) from table
然后
取出这个字段最大值 +1然后加进去 但是这样做的效率是很低啊 有没有别的方法能实现的

...全文
89 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-11-29
  • 打赏
  • 举报
回复
http://dev.mysql.com/doc/refman/5.1/zh/tutorial.html#example-auto-increment
3.6.9. 使用AUTO_INCREMENT
可以通过AUTO_INCREMENT属性为新的行产生唯一的标识:

ACMAIN_CHM 2009-11-29
  • 打赏
  • 举报
回复
[Quote]有没有别的方法能实现的 [/Quote]

基本上在数据库产品中都有一种自动增长的字段类型,比如sql server 的identity, oracle 的sequence. 在MYSQL中则是auto_increment.

mysql> create table renzaijiang (id int primary key auto_increment, col int);
Query OK, 0 rows affected (0.28 sec)

mysql>
mysql> insert into renzaijiang values (null,10);
Query OK, 1 row affected (0.06 sec)

mysql> select * from renzaijiang;
+----+------+
| id | col |
+----+------+
| 1 | 10 |
+----+------+
1 row in set (0.00 sec)

mysql> insert into renzaijiang values (null,20);
Query OK, 1 row affected (0.03 sec)

mysql> select * from renzaijiang;
+----+------+
| id | col |
+----+------+
| 1 | 10 |
| 2 | 20 |
+----+------+
2 rows in set (0.00 sec)

mysql>
江南昆虫 2009-11-29
  • 打赏
  • 举报
回复
你如果是整表唯一的递增用AUTO_INCREMENT就ok了,
如果有条件限制的分别递增(也就是该字段可重复),
那么新纪录的轮数 = select max(轮数)+1 from table where 某些条件...
by_baby 2009-11-28
  • 打赏
  • 举报
回复
自增可以的
阿_布 2009-11-28
  • 打赏
  • 举报
回复
把这个字段设置为主键,auto_increment
id int not null primary key auto_increment;
yangxiao_jiang 2009-11-28
  • 打赏
  • 举报
回复
直接使用mysql的自增字段。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧