模板天下 | 网页模板 | 学 院 | 源 码 | 书 籍 | 壁 纸 | 字 体 | JS脚本 | FLASH源码 | 软 件 | 矢 量 | 服务器软件 | 素 材 | 其它 |
设为主页
加入收藏
联系站长
平面设计 | 网页制作 | 程序编写 | 数 据 库 | 媒体动画 | 网络冲浪 | 服务器相关 | 站长乐园 | 业界动态 |
当前在线
Oracle里DUAL表 序列建立
2008-11-21 15:53:33  作者:模板天下收集整理  来源:未知 网友评论 0 条 论坛
  
项目里经常见到类似下面的语句:

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) ;
  
共分1页  [1] 

>> 相关文章

关于网站 | 客服中心 | 服务条款 | 合作伙伴 | 广告联系 | 本站历程 | 网站导航 | 发布资源 == 好的资源 大家共享

吉ICP备05000107号