【曹操】oracle库表配置自增字段合计

简介: oracle库表配置自增字段合计

前提:需要在字典表里设计自增字段。

1、需要添加自增字段的目标表
create table ICONDATA.CCAO_DICTIONARY_INFO
(
  OBJECT_NAME VARCHAR2(80),
  OBJECT_ID   VARCHAR2(20),
  PARENT_ID   VARCHAR2(20),
  UPDATE_USER VARCHAR2(50),
  UPDATE_TIME NUMBER,
  SORT_ID     NUMBER,
  OPTION_TYPE VARCHAR2(50),
  SEQU_ID     NUMBER
)

2、创建序列
create sequence ccao_sequ_autoinc
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
nocache;

修改cache大小:
alter sequence ccao_sequ_autoinc cache 20;


3、创建触发器
create or replace trigger insert_ccao_sequ_autoinc    --触发器名
  before insert on ccao_dictionary_info    --添加自增字段的表
  for each row
begin
  select ccao_sequ_autoinc.nextval into :new.sequ_id from dual;   --序列名
end;

或者设置一个中间变量nextid:
create or replace trigger insert_ccao_sequ_autoinc
  before insert on ccao_dictionary_info
  for each row
declare
  nextid number;
begin
  IF :new.sequ_id is null or :new.sequ_id = 0 THEN
    select ccao_sequ_autoinc.nextval into nextid from dual;
    :new.sequ_id := nextid;
  end if;
end;

4、查看序列创建结果,查看触发器创建结果
select * from all_triggers a where a.trigger_name='INSERT_CCAO_SEQU_AUTOINC';  

select * from user_sequences a where a.sequence_name = 'CCAO_SEQU_AUTOINC';

5、注意事项
(1)创建序列时,最好设置缓存,提高速率;
(2)创建触发器时,一定要注意触发器中,包含触发器名称、序列名和添加自增字段的目标表,千万不能弄错,不然触发器编译会出错,报错触发器器无效且验证不通过,一定是触发器写的有问题;
(3)一张表不能有多个触发器,因为触发器会全部出发,一旦有一个写错,所有的触发器都会无法执行,因此最好只写一个触发器。

目录
相关文章
|
2月前
|
SQL Oracle 关系型数据库
Oracle 将表中的数据查出更改某一字段的值后再插入该表
Oracle 将表中的数据查出更改某一字段的值后再插入该表
32 2
|
1月前
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
14 1
|
4月前
|
SQL Oracle 关系型数据库
Oracle之如何限制字段内数据的录入
Oracle之如何限制字段内数据的录入
42 0
|
6月前
|
Oracle 关系型数据库 流计算
Flink CDC不支持直接连接到Oracle ADG备库进行数据同步
Flink CDC不支持直接连接到Oracle ADG备库进行数据同步
109 1
|
6月前
|
Oracle 关系型数据库 数据库
百度搜索:蓝易云【docker部署并配置oracle12c的cdb和pdb教程!】
以上是使用Docker部署和配置Oracle 12c CDB和PDB的简要教程。请注意,这只是一个概述,并且可能需要根据你的实际情况进行适当的调整和配置。建议参考Oracle官方文档和相关资源,以获得更详细和全面的指导。
104 2
|
7月前
|
Oracle 关系型数据库 MySQL
Oracle与MySQL的主键自增方式
Oracle与MySQL的主键自增方式
|
3月前
|
存储 Oracle 关系型数据库
oracle 过滤字段中的中文,不再洋不洋土不土
oracle 过滤字段中的中文,不再洋不洋土不土
53 0
|
1月前
|
JavaScript Java 数据库连接
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
23 0
|
5月前
|
SQL Oracle 关系型数据库
Oracle21C + PLSQL Developer 15 + Oracle客户端21安装配置完整图文版
Oracle21C + PLSQL Developer 15 + Oracle客户端21安装配置完整图文版
136 0
|
2月前
|
Oracle 关系型数据库 数据库
Flink Sink to Oracle 存在字段CLOB类型,如何处理错误”ORA-01461: 仅能绑定要插入LONG的LONG值“
做Flink CDC同步数据过程中,目标是Oracle数据库,其中某个字段较大被设置为CLOB类型,其中会遇到异常,”ORA-01461: 仅能绑定要插入LONG的LONG值“