
字段自增即标识列,它是表层面的,它是列的一种属性,标识列的作用是在表(仅限单个表)中添加行时自动生成列值;sequence序列是一种数据库对象,它相对于表来说是独立的,它特别适合生成唯一键值这个任务,序列不与特定表列相关,任何SQL语句都可以使用序列的值。
使用下面的语句查看下你当前的序列最小值是多少
SELECT
FROM USER_SEQUENCES
WHERE SEQUENCE_NAME = '你的序列名(大小写注意)';
序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号
如果最小值是4001,而你的第一个生成的却是4002,(猜测)那么可能是你同学的oracle序列生成器在起初就开始自动加1了。
使用以下试试:
ALTER SEQUENCE 序列名 RESTART WITH 4001;
在不行,我看只能换oracle软件了。
我自己试了下,也没出现这种情况,对于你同学出现的这种情况我是有点郁闷,这是为什么呢?人品问题么?还是今天机子吃了豹子胆敢该oracle公司的生成器,呀的活的不耐烦了,当然不排除自己不小心改掉了。。。(以上纯属个人看法,希望不要对我发表攻击性语言)
postgresql中一个序列对象通常用于为行或者表生成唯一的标识符。查看序列:psql
的
\d
命令输出一个数据库对象,包括
Sequence,表,视图和索引。你还可以使用
\ds
命令只查看当前数据库的所有序列。例如:pigdb-#
\ds
List
of
relations
Schema
|
Name
|
Type
|
Owner--------+-----------------------+----------+--------
public
|
author_ids
|
sequence
|
ichexw
public
|
shipments_ship_id_seq
|
sequence
|
ichexw(2
rows)
、SQL Server 可以在表中直接设定某个字段为自增序列字段,来得比ORACLE容易得多,具体 *** 作参看下图:
(当然,也可以使用建表语句或修改表的语句来实现。)
相关知识点延伸:
1、MS SQL 没有特定的 dual 表,也没有系统级的sequence。
2、Sequence是数据库系统的特性,有的数据库实现了Sequence,有的则没有。比如Oracle、DB2、PostgreSQL数据库实现Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。
3、但这并不表明MS SQL或ORACLE哪一个差,只是实现的思维方式,理念上的差别。
4、正是因为这两个数据库在思维、理念上有很多的差别,所以,虽然这两个是使用得最多的大型数据库,但针对Oracle设计的中大型数据库非常难移植到MS SQL上,反过来也是一样,要想移植,其工作量往往接近于重写。
以上就是关于mysql 支持sequence吗全部的内容,包括:mysql 支持sequence吗、Oracle 数据库 sequence自动增长问题、postgresql数据库怎么查询所有的序列名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)