SQL大全[2]
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-22
增为 -2^63-1,递减为 -1. start 可选的 START start 子句 使序列可以从任意位置开始.缺省初始值是递增序列为 minvalue 递减序列为 maxvalue. cache CACHE cache 选项使序列号预分配并且为快速访问存储在内存里面. 最小值(也是缺省值)是1(一次只能生成一个值, 也就是说没有缓存). CYCLE 可选的 CYCLE 关键字可用于使序列到达 最大值(maxvalue) 或 最小值(minvalue)时可复位并继续下去.如果达到极限,生成的下一个数据将分别是 最小值(minvalue) 或 最大值(maxvalue).如果没有 CYCLE,那么在到达极限之后再调用 nextval 将返回错误. 输出 CREATE 命令成功执行的返回信息. ERROR: Relation ''seqname'' already exists 如果声明的序列已经存在. ERROR: DefineSequence: MINVALUE (start) can''t be >= MAXVALUE (max) 如果声明的初始值超出范围,返回此信息. ERROR: DefineSequence: START value (start) can''t be < MINVALUE (min) 如果声明的初始值超出范围,返回此信息. ERROR: DefineSequence: MINVALUE (min) can''t be >= MAXVALUE (max) 如果最小值和最大值不连贯. 描述 CREATE SEQUENCE将向当前数据库里增加一个新的序列号生成器. 包括创建和初始化一个新的名为 seqname的 单行表.生成器将为使用此命令的用户"所有". 在序列创建后,你可以使用函数 nextval, currval 和 nextval 操作序列.这些函数在用户手册中有详细文档. 尽管你不能直接更新一个序列,但你可以使用象 SELECT * FROM seqname; 检查一个序列的参数和当前状态.特别是序列的 last_value 字段显示了任意后端进程分配的最后的数值. (当然,这些值在被打印出来的时候可能已经过时了 --- 如果其它进程 正积极地使用 nextval.) Caution 如果用语序列对象的cache 设置大于一, 而且该对象可能被多个后端同时使用就有可能产生不可预料的结果.每个后端在访问过序列对象并递增序列对象的 last_value 后, 将分配跟在序列值后面"缓存数".这样,该后端在下面的 cache-1 次nextval调用将使用预分配好的数值, 而不对共享对象做任何更新. 所以,任何已经分配但在会话中没有使用的数字将在会话结束时丢失.而且,尽管多个后端保证分配独立的序列值, 当考虑所有的后端时该数值却有可能是乱序的.(例如,设置 cache为10, 后端 A 可能保留数值 1..10 并且返回nextval=1, 而后端 B 可能保留数值 11..20 并在后端 A 生成nextval=2 之前返回 nextval=11.)因此, 将cache 设为一可以安全地假设nextval的数值是顺序生成的; 当缓存数设置大于一,我们只能假设nextval值都是独立的, 而不能假设它们都是纯粹顺序生成的. 同样,last_value将反映由任何后端保留的最后数值,不管它是不是nextval曾返回过的. 另外一个问题是在这样的序列上执行的 setval 将不会被其它后端知晓,直道它们用光所有预先分配的缓存数值. 注意 使用 DROP SEQUENCE 语句来删除序列. 序列是基于 bigint 运算的,因此其范围不能超过八字节的 整数范围(-9223372036854775808 到 9223372036854775807).在一些老一点的平台上可能没有对八字节整数的编译器支持, 这种情况下序列使用普通的 integer 运算(范围是 -2147483648 到 +2147483647). 如果 cache 大于一,那么每个后端使用其自身的缓存来存储分配的数字. 已分配但当前会话没有使用的数字将丢失,导致序列里面出现"空洞". 用法 创建一个叫 serial的递增序列,从101开始: CREATE SEQUENCE serial START 101; 从此序列中选出下一个数字: SELECT nextval (''serial''); |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于SQL大全[2]的所有评论