Oracle 创建序列号
1. 创建序列号里各参数的解释
SQL> CREATE SEQUENCE name [INCREMENT BY n]
[START WITH n] [{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}]
INCREMENT BY n 一次增长n 个数字
NOMAXVALUE 缺省值10E+27
NOMINVALUE 缺省值1
NOCYCLE 不循环, 常用于唯一关键字
CACHE n 在内存里缓存n个序列,出错回退时会丢失
oracle8i里默认的n是20
序列号的名称一般可以采用“表名_字段名”的命名规则
2. 插入自动增长序列号字段的方法
INSERT时如果要用到从1开始自动增长的数字做唯一关键字, 应该先建立一个序列号.
CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1
MAXVALUE 99999 NOCYCLE NOCACHE;
其中最大的值按字段的长度来定,比如定义的自动增长的序列NUMBER , 最大值为999999
INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL
例子: SQL> insert into s_dept(id, name, region_id) values (s_dept_id.nextval, 'finance', 2);
1 row created.
只有运行了序列号的名称. nextval后序列号的名称. currval 才有效才有值.
3. 查询序列号的情况
SQL> select sequence_name, min_value, max_value, increment_by, last_number from user_sequences;
其中last_number指的是序列号的下一个值.
4. 改变序列号
SQL> ALTER SEQUENCE sequence [INCREMENT BY n] [{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}];
注意: 不能改变它的起始值
如果要改变序列的起始值, 先把序列号删除掉, 再新建一个.
5. 删除序列号
SQL>DROP SEQUENCE sequence;
6. 不能用序列号的nextval和currval的地方
视图的查询
有distinct的查询
有group by,having,order by的查询
有子查询的查询
表里的缺省值
分享到:
相关推荐
oracle 如何创建序列,使用数据库命令如何创建,绝对好用
--创建触发器 CREATE OR REPLACE TRIGGER tg_test BEFORE INSERT ON test FOR EACH ROW WHEN (new.nid is null) begin select seq_test.nextval into:new.nid from dual; end; --测试 insert条语句将会自动生成...
6. **创建序列**:序列是Oracle中的一个特殊对象,用于生成唯一的整数序列号。例如: ```sql CREATE SEQUENCE seq_employee_id START WITH 1 INCREMENT BY 1; ``` 这个序列名为seq_employee_id,起始值为1,...
(1)创建自定义序列号配置表如下: –自定义序列 create table S_AUTOCODE ( pk1 VARCHAR2(32) primary key, atype VARCHAR2(20) not null, owner VARCHAR2(10) not null, initcycle CHAR(1) not ...
- 为了模拟Oracle序列的行为,可以创建一个存储过程来返回下一个序列号。存储过程在数据库端执行,减少Java应用程序的负担。在MySQL中,定义一个存储过程如`GET_NEXT_SEQUENCE`,它会查询`sequence`表的最新`id`并...
当需要为表`employees`的`employee_id`字段生成序列号时,可以使用`nextval`函数: ```sql INSERT INTO employees (employee_id, name, department) VALUES (emp_seq.NEXTVAL, 'John Doe', 'Sales'); ``` 生成所有...
(1)创建自定义序列号配置表如下: --自定义序列 create table S_AUTOCODE ( pk1 VARCHAR2(32) primary key, atype VARCHAR2(20) not null, owner VARCHAR2(10) not null, initcycle CHAR(1) not null, cur_...
### 创建Oracle数据库中表的主键和自增 在Oracle数据库中实现自增主键是一项常见但非常重要的功能。这不仅有助于确保数据的唯一性,还能简化开发过程中的某些环节,尤其是在需要自动增长的主键时。下面将详细介绍...
Oracle 数据库创建涉及一系列的概念和步骤,以下是详细的知识点解析: 1. **数据库**:数据库是存储和管理数据的容器,包含表、索引、视图、过程、函数、包等对象。在Oracle中,数据库的逻辑结构由表空间构成。 2....
用户可以方便地进行对象的创建、修改、删除操作,同时提供对象依赖关系的可视化展示,便于理解数据库结构。 三、源码控制集成 对于软件开发团队,源码控制是必不可少的一环。SQL Expert支持与常见的版本控制系统...
DOA+序列号 4.1 版本是专为Delphi 10.1 Berlin设计的,这个版本支持最新版的Delphi开发环境,并优化了对Oracle数据库的访问。 DOA的核心特点在于其高度优化的代码,它绕过了传统的ODBC或OLE DB层,直接与Oracle...
2. 在Oracle中创建与MySQL主键类型匹配的列和序列。 3. 编写脚本或程序,读取MySQL数据,根据MySQL的主键值生成Oracle的序列号。 4. 插入数据到Oracle,并确保主键值的连续性。 总的来说,MySQL到Oracle的数据同步...
Toad DBA Suite for Oracle 12.1 Commercial是一款针对Oracle数据库管理的专业工具,由Quest Software公司开发。这款工具专为数据库管理员(DBAs)设计,提供了全面的Oracle数据库管理和优化功能,帮助DBAs高效地...
创建序列号的语句如下: ```sql CREATE SEQUENCE SEQ_ID MINVALUE 1 MAXVALUE 99999999999999 START WITH 1 INCREMENT BY 1 NOCACHE; ``` - `SEQ_ID`:序列号的名称。 - `MINVALUE` 和 `MAXVALUE`:设定序列号...
在Oracle Forms中,一个常见的需求是为新添加的行分配一个唯一的序列号。这个序列号应该能够根据已有的最大行号递增,同时还需要支持用户对序列号进行修改的功能。一旦用户修改了某一行的序列号,该序号应该能够在下...
在Oracle中,创建序列可以帮助我们自动化生成唯一标识符,避免手动管理这些值,尤其在需要大量插入新记录时,序列的使用极大地提高了效率和准确性。 创建序列的基本语法如下: ```sql CREATE SEQUENCE sequence_...
### 创建Oracle触发器用于表中序列值自增长 在Oracle数据库中,为了实现表中某个字段的自动递增功能,通常会使用序列(sequence)结合触发器(trigger)的方式来完成。这种方式不仅能够确保数据的一致性和完整性,...
在IT行业中,数据库管理系统(DBMS)如Oracle和MySQL是数据存储和管理的核心工具。为了更方便地操作这些数据库,通常会使用图形用户界面(GUI)工具,如Navicat Premium。这款强大的软件允许用户通过直观的界面来...
### Oracle 创建触发器与创建递增字段 #### 一、Oracle数据库中的递增字段实现方法 在Oracle数据库中,为了实现自动递增的功能,我们通常会使用`SEQUENCE`对象来实现这一目标。序列(SEQUENCE)是Oracle提供的用于...