这是一条我经常写的典型Sequence:
CREATE SEQUENCE SDOP_COC_ID Increment by 1 start with 1 minvalue 1 maxvalue 9999999999 cycle nocache order;
语法很简单,可以参考这个图:
CREATE SEQUENCE SDOP_COC_ID -- sequence name
Increment by 1 -- 每次加几个,你可以指定为80个每次 :wink:
start with 1 -- 从1开始计数
minvalue 1 --最小为1,nominvalue为不设置最小值,Oracle会指定:升序为1,降序为负10的26次方
maxvalue 9999999999 --最大值, NOMAXVALUE为不设置最大值,在这种情况下,Oracle默认指定:升序10的27次方,降序-1
cycle -- 循环,nocycle为不循环
nocache ; --不缓存序列。 cache 10则表示缓存10个号,可提高效率,但可能造成跳号。
nocache虽然可以提高相率,但是可能造成跳号。系统重启会丢失memory中的号。解决的方式就是使用nocache。(不知道是否有解决方法? 貌似应该有一个,没有时间研究,先记下来吧)
参考这里:
http://www.lorentzcenter.nl/awcourse/oracle/server.920/a96540/statements_615a.htm#2067095
分享到:
相关推荐
- **cache n | nocache**:如果使用cache,则系统会一次性预取n个序列值放入内存,以提高性能;nocache则不会预取,每次调用都会直接访问数据库。 - **cycle | nocycle**:如果设置了cycle,当序列达到最大值或...
Oracle 创建自增字段方法-ORACLE SEQUENCE 的简单介绍 Oracle SEQUENCE 是一种特殊的数据库对象,用于生成一系列唯一的数值,通常用于主键或其他需要唯一标识的字段。下面将详细介绍 Oracle 创建自增字段方法-...
创建 Sequence 的基本语法如下: ```sql CREATE SEQUENCE sequence_name INCREMENT BY increment_value -- 指定每次增加的数值 START WITH start_value -- 序列起始值 [NOMAXVALUE | MAXVALUE max_value] -- 设置...
这一步可能需要对CoolSQL的数据库访问层进行修改,确保其能正确处理Oracle特有的Sequence语法。 2. **配置CoolSQL**:如果源码不可修改,可能可以通过配置文件或者插件的方式实现。检查CoolSQL是否提供自定义数据...
CREATE SEQUENCE my_seq INCREMENT BY 1 START WITH 1 NO MAXVALUE NO CYCLE CACHE 20; CREATE OR REPLACE TRIGGER MY_TGR BEFORE INSERT ON tab_user FOR EACH ROW DECLARE NEXT_ID NUMBER; BEGIN SELECT my_seq...
序列 序列(Sequence)是用来生成连续的整数数据的对象。序列常常用来作为主键中增长列, ...[CACHE num|NOCACHE] 语法解析: ① START WITH:从某一个整数开始,升序默认值是 1,降序默认值是-1。 ②
4. **NO CACHE**:为了防止数据丢失,可以在创建`sequence`时使用`NOCACHE`选项。 #### 六、修改Sequence 要修改`sequence`的属性,需要拥有该`sequence`的所有权或者`ALTER ANY SEQUENCE`权限。可以通过`ALTER ...
[CACHE cache_size | NOCACHE]; ``` - `sequence_name`: 序列的名字。 - `INCREMENT BY increment`: 指定每次调用序列时增加的值,默认为1。 - `MINVALUE minvalue`: 指定序列的最小值。 - `MAXVALUE maxvalue`: ...
CREATE SEQUENCE 序列号的名称 INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE; 3. 字段类型 Oracle 中有多种字段类型,包括 CHAR、VARCHAR2、NUMBER、DATE 等。不同的字段类型有不同的特点和使用场景...
Oracle中的Sequence是数据库管理系统提供的一种用于生成唯一数值的机制,常用于主键生成或自增字段。在Oracle中,Sequence不直接与任何特定的表关联,而是作为一个独立的对象存在,可以独立于表进行管理和操作。以下...
- 使用序列(sequence)自动生成主键,例如:`CREATE SEQUENCE 序列名 START WITH 1 INCREMENT BY 1 MAXVALUE 99999 CYCLE NOCACHE;` - 主键类型为`NUMBER(6)`,最大值为999999。 - 插入时若列值为空,可直接留空...
CREATE SEQUENCE <sequence_name> INCREMENT BY <increment_by_value> START WITH <start_with_value> MAXVALUE <max_value> NOCYCLE NOCACHE; ``` **示例:** ```sql CREATE SEQUENCE class_seq INCREMENT BY 1 ...
NOCACHE; ``` - `sequence_name`:序列的名称。 - `start_value`:序列的初始值。 - `increment_value`:每次递增的值。 - `min_value` 和 `max_value`:设定序列值的范围。 - `CYCLE` 或 `NOCYCLE`:当达到最大值...
NOCACHE -- 不设置缓存,每次使用时都会从数据库获取新值 ORDER -- 可选,确保序列值的顺序,但可能降低性能 ``` 例如,创建名为`emp_sequence`的序列: ```sql CREATE SEQUENCE emp_sequence INCREMENT BY 1 ...
- `CREATE SEQUENCE 序列号名称 [表名+序列号标记] INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;` - 最大值应根据字段长度确定,例如 NUMBER(6) 的最大值为 999999。 - 在 `INSERT` 语句中使用...
Oracle数据库中的ID自动递增是通过序列(Sequence)和触发器(Trigger)配合实现的,这对于需要自动填充主键或其他顺序标识字段的情况非常有用。序列是一个数据库对象,它按照预定的规则(如每次递增1)生成唯一的...
创建Oracle序列的基本语法如下: ```sql CREATE SEQUENCE sequence_name START WITH value INCREMENT BY increment [MINVALUE minvalue | NO MINVALUE] [MAXVALUE maxvalue | NO MAXVALUE] [CYCLE | NO CYCLE]...