xynt.net - 星云网络

首页| 新闻资讯| 业界动态| 操作系统| win应用| 设计教程| 电脑医院| 网络应用| 数据库| 明星八卦| 编程学习| 常用工具| 网络安全
算命| 病毒木马| 游戏心得| 系统工具| QQ攻备| 游戏下载| 游戏工具| 周公解梦| 服务器| 情感男女| 精美图库| 生活空间| 手机学院
资讯通告:
搜索: 您现在的位置: 星云网络-电脑技术网 >> 文章中心 >> 网络学院 >> 数据库 >> 正文

Oracle里DUAL表 序列建立

2008-06-10 13:50:46 来源:网络转载 作者:佚名 【 点击:
项目里经常见到类似下面的语句:

SELECT SEQ_PROJECT.NEXTVAL FROM DUAL

用于获取序列值。而自己并没有创建DUAL这个表,这个表是谁创建的呢,主要是用来做什么的呢?

下面是我找到的部分解释:

DUAL是Oracle与数据字典一起自动创建的一个表,它只有一列:DUMMY,其数据类型为:VARCHAR2(1)。

DUAL中只有一行数据:'X'。

DUAL属于SYS模式,但所有用户都可以使用DUAL名称访问它。用SELECT计算常量表达式、伪列等值时常用该表,因为它只返回一行数据,而使用其它表时可能返回多个数据行。

在Oracle数据库中创建一个序列,使表的PK顺序生成为表创建序列

CREATE SEQUENCE emp_sequence
INCREMENT BY 1  -- 每次加几个
START WITH 1   -- 从1开始计数
NOMAXVALUE    -- 不设置最大值
NOCYCLE     -- 一直累加,不循环
CACHE 100;

CREATE SEQUENCE NAD_PV_SEQU
INCREMENT BY 1
START WITH 1807487
MAXVALUE 999999999999999999
NOCYCLE
CACHE 100;

删除序列
DROP SEQUENCE NAD_PV_SEQU;

为表创建序列
CREATE SEQUENCE EMPSEQ ... ;
SELECT empseq.currval FROM DUAL ;

自动插入序列的数值
INSERT INTO emp
VALUES (empseq.nextval, 'LEWIS', 'CLERK',
7902, SYSDATE, 1200, NULL, 20) ;
  
Tags: 59岁教授对17岁女生的“爱抚疗法”事件到底伤了谁? ,小心“黑屏”破解工具暗藏木马  
责任编辑:2008xynt
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】   
    姓 名: * Oicq:
    评 分: 1分 2分 3分 4分 5分
    评论内容:
    推荐..
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 免责声明 - 用户留言 -