重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
问题分析:序列=自增ID,是数据库根据数据插入先后顺序自动生成的。
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的甘谷网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
查询方式:
只能再查询自增ID即可
具体操作:MYSQL获取自增ID的四种方法
select max(id) from tablename
SELECT LAST_INSERT_ID() 函数
LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。
select @@IDENTITY;
@@identity 是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。
SHOW TABLE STATUS;
得出的结果里边对应表名记录中有个Auto_increment字段,里边有下一个自增ID的数值就是当前该表的最大自增ID.
?php
echo md5(time());
?
这样好了 基本唯一(精确到秒) 而且还长(32位)
(如果用别的语言,思路就是获取当前的“计算机时间”)
PS:计算机时间是指1261401812,这样的时间
mysql
select
*
from
a;
+-----+
|
col
|
+-----+
|
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
+-----+
8
rows
in
set
(0.00
sec)
mysql
set
@i
:=
0;
select
@i
:=
@i
+
1
as
`order`,
a.*
from
a
order
by
col
desc;
+-------+-----+
|
order
|
col
|
+-------+-----+
|
1
|
7
|
|
2
|
6
|
|
3
|
5
|
|
4
|
4
|
|
5
|
3
|
|
6
|
2
|
|
7
|
1
|
|
8
|
|
+-------+-----+
8
rows
in
set
(0.00
sec)
mysql
mysql下序列是用关键字auto_crement,起始值及步长增长值由系统以下参数确定:
mysql show variables like '%auto_increment%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.00 sec)
mysql
其中auto_increment_offset表示起始值(且必须由1开始),参数表示auto_increment_increment表示步长增长值(只能是正整数)。
建表示例:
create table t111
(id int auto_increment primary key,
remark varchar(50)
);
由上面所说可知,你的需求在mysql下单用auto_crement是实现不了的。建议你考虑别的办法吧,或由一些变通的方式实现。
序列只有db2
oracle有,mysql没有序列的,不过你可以给你所所创建的表的主键设置为自增。
例如
create
table
A
(
id
int(20)
auto_increment
)
不过设置为自增的键必须是数值类型的。
你是不是问,建表时每增加一个值,这个字段自动产生一个连续的序号?
要是这样的话,在每个表后面加上:
ID INT UNSIGNED NOT NULL AUTO_INCREMENT
其中的ID指你哪个序列号的字段名,int是整数类型