当前位置: 首页 > news >正文

单页网站制作教程/北京搜索引擎优化经理

单页网站制作教程,北京搜索引擎优化经理,蓟州区建设银行官方网站,重庆十大外贸公司排名oraclesequence编辑 本词条缺少概述、信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!目录 1简介 2操作方法 ▪ 创建▪ 使用1简介编辑 Oracle提供了sequence对象,由系统提供自增长的序列号,通常用…

oraclesequence编辑

本词条缺少概述信息栏名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

目录

1简介

2操作方法

 创建
 使用

1简介编辑

Oracle提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方。
Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何意义。
Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。
Sequence是数据中一个特殊存放等差数列的表,该表受数据库系统控制,任何时候数据库系统都可以根据当前记录数大小加上步长来获取到该表下一条记录应该是多少,这个表没有实际意义,常常用来做主键用,非常不错,呵呵,不过很郁闷的各个数据库厂商尿不到一个壶里,拉不到一个盆里–各有各的一套对Sequence的定义和操作。在此我对常见三种数据库的Sequence的定义和操作做一个对比和总结,以便日后查看。

2操作方法编辑

创建

Create Sequence
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 — 每次加几个
START WITH 1 — 从1开始计数
NOMAXVALUE — 不设置最大值
NOCYCLE — 一直累加,不循环
CACHE 10;
一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的当前值
NEXTVAL=增加sequence的值,然后返回 sequence 值
比如:
emp_sequence.CURRVAL
emp_sequence.NEXTVAL
可以使用sequence的地方:
- 不包含子查询、snapshot、VIEW的 SELECT 语句
- INSERT语句的子查询中
- INSERT语句的VALUES中
- UPDATE 的 SET中
可以看如下例子:
INSERT INTO emp VALUES (empseq.nextval, ‘LEWIS’, ‘CLERK’,7902, SYSDATE, 1200, NULL, 20);
SELECT empseq.currval FROM DUAL;
但是要注意的是:
– 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次SEQUENCE的值,所以如果你在不同的SQl语句里面使用NEXTVAL,其值是不一样的。
– 如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失, 所以可以在create sequence的时候用nocache防止这种情况。
Alter Sequence
你或者是该sequence的owner,或者有ALTER ANY SEQUENCE 权限才能改动sequence。 可以alter除start至以外的所有sequence参数。如果想要改变start值,必须 drop sequence 再 re-create 。
Alter sequence 的例子
ALTER SEQUENCE emp_sequence
INCREMENT BY 10
MAXVALUE 10000
CYCLE — 到10000后从头开始
NOCACHE ;
影响Sequence的初始化参数:
SEQUENCE_CACHE_ENTRIES =设置能同时被cache的sequence数目。
可以很简单的Drop Sequence
DROP SEQUENCE order_seq;
Sequence与indentity的区别与联系
Sequence与indentity的基本作用都差不多。都可以生成自增数字序列。
Sequence是数据库系统中的一个对象,可以在整个数据库中使用,和表没有任何关系;indentity仅仅是指定在表中某一列上,作用范围就是这个表。

使用

使用 NEXTVAL
第一次访问一个序列,在引用 sequence.CURRVAL 之前必须先引用 sequence.NEXTVAL。第一次引用 NEXTVAL,返回序列的初始值。后面每次引用 NEXTVAL,用已定义的 step 增加序列值并返回序列新的增加以后的值。
在一个 SQL 语句中只能对给定的序列增加一次。即使在一个语句中多次指定 sequence.NEXTVAL,序列也只增加一次,所以每次 sequence.NEXTVAL 出现在同一 SQL 语句中返回相同的值。除了在同一语句中多次出现这种情况以外,每个sequence.NEXTVAL表达式都会增加序列,无论后来是否提交或回滚当前事务。如果在最终回滚的事务中指定sequence.NEXTVAL,某些序列数可能被跳过。
如在PL/SQL中:
查询nextval的值等于151
select cheng.nextval from test1234
执行insert语句
insert into test1234 values(cheng.nextval,’bb’,22);
commit或rollback后再查询nextval的值会增加到153
使用 CURRVAL
任何对CURRVAL的引用返回指定序列的当前值,该值是最后一次对NEXTVAL的引用所返回的值。用NEXTVAL生成一个新值以后,可以继续使用 CURRVAL访问这个值,不管另一个用户是否增加这个序列。如果sequence.CURRVAL和 sequence.NEXTVAL都出现在一个 SQL语句中,则序列只增加一次。在这种情况下,每个sequence.CURRVAL和 sequence.NEXTVAL表达式都返回相同的值,不管在语句中sequence.CURRVAL和sequence.NEXTVAL的顺序。
如在PL/SQL中:
select cheng.nextval,cheng.currval from test1234
nextval和currval的值都是160
序列的并发访问
序列总是在数据库中生成唯一值,即使当多个用户并发地引用同一序列时也没有可察觉的等待或锁定。当多个用户使用 NEXTVAL 来增长序列时,每个用户生成一个其他用户不可见的唯一值。当多个用户并发地增加同一序列时,每个用户看到的值是有差异的。例如,一个用户可能从一个序列生成一组值,如 11、14、16 和 18,而另一个用户并发地从同一序列生成值 12、13、15 和 17。

http://www.lbrq.cn/news/1099567.html

相关文章:

  • 帮建网站的人/信息推广
  • wordpress 博客地址更改/优化流程
  • 免费的网站程序哪里好/竞价广告是怎么推广的
  • e网站建设/微营销平台
  • 展示型网站 asp.net/识图
  • 南京大学特色专业建设网站/公司网站优化方案
  • wordpress网頁/桂林seo排名
  • 佛山公司做网站/长沙网站seo优化公司
  • 刷网站关/最有效的线上推广方式
  • 深圳企业推广网站/怎么开设自己的网站
  • 网站上线后如何换模版/百度客服在哪里找
  • 制作动作游戏吧中文/海外seo是什么
  • 系统门户网站建设常用功能/新闻发稿渠道
  • dw做的网站怎么被别人打开/seo代码优化包括哪些
  • 网站服务器维护方案/网上网络推广
  • 昆明做网站哪家好/企业排名优化公司
  • 网站快速设计/seo网站推广批发
  • 闲置服务器做网站挣钱/网站建设方案外包
  • 承德网站制作公司/小红书推广方式有哪些
  • 永康网站建设/舆情分析
  • 个人未授权做的网站/百度站长平台官网登录入口
  • 忻州推广型网站开发/近期出现的病毒叫什么
  • dedecms 视频网站模板/semi final
  • 中小型网站建设流程/济宁百度竞价推广
  • 做网站的app/小吃培训机构排名前十
  • 网站开发 周期/搜狗搜索推广
  • 网站建设作业多少钱/百度网站首页网址
  • 营销网站的概念/百度智能云建站
  • 微信公众号影视网站怎么做/磁力蜘蛛
  • 网站注册域名位置/黑帽seo是什么意思
  • 了解 ReAct 框架:语言模型中推理与行动的协同
  • Spring MVC 核心工作流程
  • 一维数组练题习~
  • 深入浅出理解动态规划
  • 小型支付项目3-5:检测未接收到或未正确处理的支付回调通知
  • Openlayers 面试题及答案180道(121-140)