DB2 sequence 的创建是否带有双引号,引发的一个生产系统问题
create sequence x3; -- 执行成功
create sequence "x3" -- 执行成功
(实际上创建了一个名称为 "x3" 的sequence,也可以用 X3 来访问)
values Nextval for x3 --执行成功,值为 1
values prevval for X3 --执行成功,值为 1
create sequence Y3; -- 执行成功,可以用 Y3 和 y3 或者 "Y3" 来访问
create sequence "Y3" -- 执行失败 报已经存在错误
values Nextval for Y3 -- 执行成功,值为 1
values Nextval for y3 -- 执行成,值为 2
create sequence z3; -- 执行成功
create sequence "z3" -- 执行成功
(实际上创建了一个名称为 "z3" 的 sequence,注意是带引号的)
--values prevval for z3 -- 报错 因为还没有值所以报错
values Nextval for z3 -- 执行成功,值为 1
values Nextval for z3 -- 执行成功,值为 2
values Nextval for "z3" -- 执行成功,值为 1
---------------------------------------------------------------
ORACLE sequence
create sequence x3; -- 执行成功
create sequence "x3" -- 执行成功
(说明在 oracle 中 创建 sequence 当引号中有小写字母的时候,带引号和不带引号是不一样的)
--select x3.prevval from dual -- 报错
--select X3.prevval from dual -- 报错
select x3.Nextval from dual -- 执行成功 值为 1
select x3.Nextval from dual -- 执行成功 值为 2
select X3.Nextval from dual -- 执行成功 值为 3 实际上是 x3 这个 sequence
select "x3".nextval from dual -- 执行成功 值为 1
select "x3".nextval from dual -- 执行成功 值为 2
-------------------------------
create sequence Y3; -- 执行成功
create sequence "Y3" -- 执行失败,报错,提示已经存在,
(说明 oracle 中创建 sequence 如果是大写字母,跟创建带引号的是一样的。)
select Y3.nextval from dual -- 执行成功 值为 1
select "Y3".nextval from dual -- 执行成功 值为 2
-------------------------------
create sequence "A" -- ok
select "A".nextval from dual -- ok
select a.nextval from dual -- ok
select A.nextval from dual -- ok
select "A".nextval from dual -- ok
select "a".nextval from dual -- error
-------------------------------
create sequence "b" -- ok
select "b".nextval from dual -- ok
select b.nextval from dual -- error
select B.nextval from dual -- error
select "B".nextval from dual -- error
select "b".nextval from dual -- ok
-------------------------------
create sequence "a"
select a.nextval from dual --error
select A.nextval from dual --error
select "a".nextval from dual -- ok
select "A".nextval from dual -- error
-------------------------------
create sequence "B"
select b.nextval from dual -- ok
select B.nextval from dual -- ok
select "b".nextval from dual -- error
select "B".nextval from dual -- ok
drop sequence B --ok
drop sequence a --error
drop sequence "a" --ok
create sequence "B" -- ok
drop sequence b --ok
create sequence "B" -- ok
drop sequence "b" --error
drop sequence b -- ok
---------------------------------------------------------------
分享到:
相关推荐
教你如何使用oracle中的sequence,实现主键自动增长
oracle中sequence介绍及应用
在Oracle数据库移植过程中,sequence可能失效,本资源可使失效的sequence重新恢复作用
Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍 很有用哦
Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何...比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。
,这样在反复操作时会加快运行速度,但如果遭遇意外情况如当机了或oracle死了,则下次取出的seq值将和上次的不连贯.(如果连不连贯无所谓建议用cache,因为时间就是金钱呀 胡萝卜须 23:20:42 有啊 緣,仯芣妸訁 23:20:57 ...
Oracle中没有sqlserver中那么方便的自增序列,如果想要达到sqlserver中那种效果,也不是很麻烦,需要创建一个自增序列SEQUENCE,然后建一个触发器即可。 CREATE SEQUENCE emp_sequence INCREMENT BY 1 — ...
oracle GoldenGate 同步oracle sequence的步骤
只需要在excel里面写好表名列名,即可通过本EXCEL自动生成oracle table index sequence syn等表信息,注:只支持office 32位,系统多少位不影响。。
主要介绍了浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
NULL 博文链接:https://snowelf.iteye.com/blog/575555
在ORACLE数据库中,序列(SEQUENCE)是使用非常频繁的一个数据库对象,但是有时候会遇到序列(SEQUECNE)跳号(skip sequence numbers)的情形,那么在哪些情形下会遇到跳号呢? 事务回滚引起的跳号 不管序列有...
可以根据oracle数据库中存在的sequence,生成建立语句
NULL 博文链接:https://duqiangcise.iteye.com/blog/749438
在Oracle数据库中,sequence等同于序列号,每次取的时候sequence会自动增加,一般会作用于需要按序列号排序的地方。 1、Create Sequence (注释:你需要有CREATE SEQUENCE或CREATE ANY SEQUENCE权限) CREATE ...
Sql Server 数据库,插入操作时可以设置,自动编号。但是ORACLE 数据库,具有里一个东西SEQUENCE,在这儿介绍
在oracle中sequence就是序号,每次取的时候它会自动增加。sequence与表没有关系。 1、Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。 创建语句如下: CREATE SEQUENCE seqTest INCREMENT...
Oracle自增长主键自动生成类 public static int nextID String table { if table null return 1; table table toLowerCase ; String strKey table; if sequences containsKey strKey { ...
1、在Oracle sequence首先创建sequence create sequence seq_idminvalue 1start with 1increment by 1cache 20; 2、在你的hbm.xml中的配置 seq_id 这样再插入数据的时候,Hibernate会自动生成如下语句: ...
先假设有这么一个表: 代码... 在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, CREAT