• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

实例说明oracle序列用法

php 搞代码 4年前 (2021-12-20) 36次浏览 已收录 0个评论

一,为什么要创建oracle序列

mysql创建表时,我们可以用auto_increment来设置字段的自动增加,而不需要人为插入。而oracle不行,oracle创建表时,根本没有auto_increment这样的东东,如果要设置自动增加加怎么办?我们要创建一个序列,插入时把查找出来的序列值,手动插入进去。

二,创建,修改序列

1,创建,修改序列,语法规则

CREATE SEQUENCE [user.]sequence_name
[increment by n]
[start with n]
[maxvalue n | nomaxvalue]
[minvalue n | nominvalue];
INCREMENT BY: 指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1。
START WITH:指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。
MAXVALUE:指定序列可生成的最大值。
NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1。
MINVALUE:指定序列的最小值。
NOMINVALUE:为升序指定最小值为1。为降序指定最小值为-1026。

2,创建序列

create sequence seq_tank
increment by 1
start with 1
minvalue 1
maxvalue  99999
nocycle
cache  10

3,修改序列

alter sequence seq_tank
increment by 10
maxvalue 1000
cycle
nocache

4,查看序列

SQL> select * from user_sequences;

5,删除序列

SQL> drop SEQUENCE seq_tank;

6,查看序列值

SQL> select seq_test.nextval from dual;

 NEXTVAL
----------
 1

三,简单说一下oracle dual表

根mysql相比,dual表也是oracle的一个特点,它是oracle中的一个表,任何用户均可读取,常用在没有目标表的select语句中。什么意思呢?看下面的例子就明白了。

SQL> select sysdate;           //不加上dual就报下面的错误
select sysdate
 *
ERROR at line 1:
ORA-00923: FROM keyword not found where expected

SQL> select sysdate from dual;    //加上dual就可以,正常显示了

SYSDATE
---------
24-JUN-11

mysql> select now() as time;     //mysql则不需要
+---------------------+
| time                |
+---------------------+
| 2011-06-24 15:20:31 |
+---------------------+
1 row in set (0.00 sec)

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:实例说明oracle序列用法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址