DB2和中新建sequence
 
 sequence 的创建是否带有双引号,引发的一个生产问题 
  www.2cto.com  
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 
 
---------------------------------------------------------------