数据库的序列用法有哪些,ORACLE 中 序列的 使用
来源:整理 编辑:黑码技术 2024-05-21 18:38:00
1,ORACLE 中 序列的 使用
用序列再一个回话中先要查了序列_s.nextval才可以查序列_s.currval,不然就会出现你遇到的情况。你可以试试
2,如何使用序列作为一个表的主键值
序列(Sequence)是一种可以被多个用户使用的用于产生一系列唯一数字的数据库对象。序列定义存储在数据字典中,通过提供唯一数值的顺序表来简化程序设计工作,可以使用序列自动产生主键的键值。当一个序列第一次被查询调用时,它将返回一个预定值。在随后的每次查询中,序列将产生一个按指定的增量增长的值。序列可以循环,或者是连续增加的,直到指定的最大值为止。
创建序列语法如下:create sequence [模式]序列名称[start with 起始数字] [increment by 增量][maxvalue 最大值|nomaxvalue][minvalue 最小值|nominva lue][cycle|nocuyle][cache 数目|nocache][order|noorder]。
3,数据库中的序列是什么具体概念
序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。创建序列需要CREATE SEQUENCE系统权限。序列的创建语法如下: CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}]; INCREMENT BY 用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表序列的值是按照此步长递减的。 START WITH 定义序列的初始值(即产生的第一个值),默认为1。 MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。 MINVALUE定义序列生成器能产生的最小值 ...
4,序列创建好了之后如何使用
先创建一个sequence: CREATE SEQUENCE CAid_seq ORDER NOCYCLE; 再在要自动增值的表上建个trigger CREATE OR REPLACE TRIGGER set_CAid BEFORE INSERT ON tblCA FOR EACH ROW DECLARE next_CAid NUMBER; BEGIN SELECT CAid_seq.NEXTVAL INTO next_CAid FROM dual; :new.CAid:=next_CAid; END; 先创建序列,然后为表创建触发器1 看你是什么数据库。百度一下就能搜到如何创建序列的语法。2 一般来讲序列没有指定给哪个表使用的说法。一般而言创建这个序列的用户下的所有表都可以使用这个序列,而且互不影响。如果哪个表需要使用就在sql语句中加入相应的部分。具体语法根据数据库的不同而不尽相同。同样百度下就能知道了。呵呵
5,请问oracle中的序列是干什么用的
当你需要一个自动增长的id或别的什么主键的时候,你可以用一个序列来解决问题。序列是一数据库对象,利用它可生成唯一的整数。一般使用序列自动地生成主码值。一个序列的值是由特殊的Oracle程序自动生成,因此序列避免了在应用层实现序列而引起的性能瓶颈。Oracle序列允许同时生成多个序列号,而每一个序列号是唯一的。当一个序列号生成时,序列是递增,独立于事务的提交或回滚。允许设计缺省序列,不需指定任何子句。该序列为上升序列,由1开始,增量为1,没有上限。 1) 建立序列命令 网管网 www.bitscn.com CREATE SEQUENCE [user.]sequence_name [increment by n] [start with n] [maxvalue n | nomaxvalue] [minvalue n | nominvalue]; INCREMENT BY: 指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1。 START WITH:指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。 MAXVALUE:指定序列可生成的最大值。 NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1。 MINVALUE:指定序列的最小值。 NOMINVALUE:为升序指定最小值为1。为降序指定最小值为-1026。 网管网www_bitscn_com 2) 更改序列命令 网管网www_bitscn_com ALTERSEQUENCE [user.]sequence_name [INCREMENT BY n] [MAXVALUE n| NOMAXVALUE ] [MINVALUE n | NOMINVALUE]; 修改序列可以: ? 修改未来序列值的增量。 ? 设置或撤消最小值或最大值。 ? 改变缓冲序列的数目。 ? 指定序列号是否是有序。 网管u家u.bitscn@com 3) 删除序列命令 中国网管联盟bitsCN.com DROP SEQUENCE [user.]sequence_name; 从数据库中删除一序列。 网管联盟bitsCN@com 创建一个序列号的语句: 中国网管联盟bitsCN.com CREATE SEQUENCE EXAM_NO_SEQ START WITH 1484 MAXVALUE 9999999999 MINVALUE 1 CYCLE CACHE 20 NOORDER; 网管网www_bitscn_com PB中取序列号的用法: 网管bitscn_com string v_exam_no //获取申请序号 SELECT exam_no_seq.nextval INTO :v_exam_no FROM dual using ghis_database; if ghis_database.SQLCODE<>0 then messagebox("","取检查序号出错") return end if【转自 www.bitsCN.com】序列是一数据库对象,利用它可生成唯一的整数。一般使用序列自动地生成主码值。一个序列的值是由特殊的Oracle程序自动生成,因此序列避免了在应用层实现序列而引起的性能瓶颈。Oracle序列允许同时生成多个序列号,而每一个序列号是唯一的。当一个序列号生成时,序列是递增,独立于事务的提交或回滚。允许设计缺省序列,不需指定任何子句。该序列为上升序列,由1开始,增量为1,没有上限。 具体步骤1.建立序列命令 CREATE SEQUENCE [user.]sequence_name[increment by n][start with n][maxvalue n | nomaxvalue][minvalue n | nominvalue]INCREMENT BY: 指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1。START WITH:指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。MAXVALUE:指定序列可生成的最大值。NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1。MINVALUE:指定序列的最小值。NOMINVALUE:为升序指定最小值为1。为降序指定最小值为-1026。 2.更改序列命令 ALTERSEQUENCE [user.]sequence_name[INCREMENT BY n][MAXVALUE n| NOMAXVALUE ][MINVALUE n | NOMINVALUE];修改序列可以:修改未来序列值的增量。设置或撤消最小值或最大值。改变缓冲序列的数目。指定序列号是否是有序。删除序列命令DROP SEQUENCE [user.]sequence_name;从数据库中删除一序列。 创建一个序列号的语句: 中国网管联盟bitsCN.comCREATE SEQUENCE EXAM_NO_SEQSTART WITH 1484MAXVALUE 9999999999MINVALUE 1CACHE 20NOORDER;PB中取序列号的用法: string v_exam_noSELECT exam_no_seq.nextval INTO :v_exam_no FROM dualusing ghis_database;if ghis_database.SQLCODE<>0 thenmessagebox("","取检查序号出错")returnend if你好!当你需要一个自动增长的id或别的什么主键的时候,你可以用一个序列来解决问题。如果对你有帮助,望采纳。
文章TAG:
数据 序列 用法 数据库的序列用法有哪些 ORACLE 中 序列的 使用