【曹操】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)一张表不能有多个触发器,因为触发器会全部出发,一旦有一个写错,所有的触发器都会无法执行,因此最好只写一个触发器。

目录
相关文章
|
7月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之和Oracle数据同步必须是使用主库吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
实时计算 Flink版产品使用合集之和Oracle数据同步必须是使用主库吗
|
2月前
|
Oracle 关系型数据库 MySQL
shell获取多个oracle库mysql库所有的表
请注意,此脚本假设你有足够的权限访问所有提到的数据库。在实际部署前,请确保对脚本中的数据库凭据、主机名和端口进行适当的修改和验证。此外,处理数据库操作时,务必谨慎操作,避免因错误的脚本执行造成数据损坏或服务中断。
41 0
|
3月前
|
Ubuntu Oracle 关系型数据库
Oracle VM VirtualBox之Ubuntu 22.04LTS双网卡网络模式配置
这篇文章是关于如何在Oracle VM VirtualBox中配置Ubuntu 22.04LTS虚拟机双网卡网络模式的详细指南,包括VirtualBox网络概述、双网卡网络模式的配置步骤以及Ubuntu系统网络配置。
316 3
|
5月前
|
Oracle 关系型数据库 Linux
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
通过这一连串的步骤,可以专业且有效地在Linux下为Qt编译Oracle驱动库 `libqsqloci.so`,使得Qt应用能够通过OCI与Oracle数据库进行交互。这些步骤适用于具备一定Linux和Qt经验的开发者,并且能够为需要使用Qt开发数据库应用的专业人士提供指导。
165 1
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
|
4月前
|
Oracle 关系型数据库 BI
ORACLE Apex: EBS多组织结构 理解与配置
【8月更文挑战第11天】在Oracle Apex中理解和配置与EBS多组织结构相关内容需掌握:1) EBS多组织结构概念及组成部分,如法律实体、业务单位与库存组织;2) Oracle Apex与EBS集成的目的与方式,包括提供友好界面及自定义业务流程;3) 在Apex中配置多组织结构应用,涉及数据访问控制、页面报表设计及业务流程集成。整体而言,需精通EBS架构与Apex开发技术,以实现高效灵活的企业解决方案。
|
5月前
|
Oracle 关系型数据库 Java
mybatis使用statement.getGenreatedKeys(); useGeneratedKeys=”true”;使用自增主键获取主键值策略和Oracle不支持自增,Oracle使用序列
mybatis使用statement.getGenreatedKeys(); useGeneratedKeys=”true”;使用自增主键获取主键值策略和Oracle不支持自增,Oracle使用序列
|
7月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之可以通过配置Oracle数据库的schema注册表来监测表结构的变化吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
55 1
|
7月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之如何获取 Oracle 自增 ID
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
Oracle 关系型数据库 数据安全/隐私保护
oracle 19c 密码字段
oracle 19c 密码字段
66 0
|
7月前
|
Oracle Java 关系型数据库
实时计算 Flink版产品使用合集之支持 Oracle 整库同步吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。