`

Oracle创建自增主键的方法之使用sequence+trigger

 
阅读更多

Oracle中没有像mysql中那样自增的方式(auto_increment),可以使用sequence+trigger的方式来实现该功能。

 

1、有下面一张表:

create table ecp_docfiles (id number(10) primary key  , contractcode varchar2(150) ,filename varchar2(30) not null unique,createdate timestamp default sysdate,isactive char(2) default '1' );

id是主键。

 

2,创建一个sequence。

 create sequence sequence_ecp_docfiles
   increment by 1   --每次自增1
  start with 1    --从1开始
  nomaxvalue    -- 不设置最大值
  nocycle  --不循环,一直累加
  cache  10;  

 -- 为了加快读取速度,可以设置cache,既每次预加10个序列号,但如果数据库服务器宕机,就会造成cache中预加的序列号丢失,从而致使表中的序列不是连续的。

 

3.创建一个trigger,在对ecp_docfiles表进行insert时,就会自动的将id值自增。

create or replace trigger tigger_ecp_docfiles
  before insert on ecp_docfiles 
  for each row
declare
  nextid number;
begin
  if :new.id is null or :new.id = 0 then
     select sequence_ecp_docfiles.nextval
         into nextid
     from sys.dual;
     :new.id := nextid;
  end if; 
end tigger_ecp_docfiles;

 

分享到:
评论

相关推荐

    Oracle建立自增主键

    ### Oracle建立自增主键 在Oracle数据库管理中,创建自增主键是一种常见...总之,通过组合使用`SEQUENCE`和`TRIGGER`,可以有效地在Oracle数据库中实现自增主键功能,从而简化数据库管理并提高数据的一致性与完整性。

    ORACLE自增主键设置方法

    ### ORACLE自增主键设置方法 在Oracle数据库中,自增主键是一种常见的主键设计方式,它能够确保每条记录的唯一性,并且在插入新记录时自动递增,简化了数据管理流程。本文将详细介绍如何在Oracle中设置自增主键。 ...

    oracle中设置自增主键参考

    ### Oracle中设置自增主键方法详解 在Oracle数据库中,自增主键是一种非常实用且常见的设计模式,它能够确保表中的每一条记录都拥有一个唯一的标识符,这对于数据的管理和查询非常重要。本文将详细介绍如何在Oracle...

    创建oracle数据库中表的主键和自增

    下面将详细介绍如何通过序列(Sequence)和触发器(Trigger)来实现在Oracle中创建自增的主键。 #### 序列(Sequence) 序列是一种自动产生数值的数据库对象。它可以被用来生成唯一的、连续的整数或浮点数。序列...

    Oracle数据库中创建自增主键的实例教程

    在设计数据库表的时候发现Oracle没有自增主键的设置,Google了解到Oracle本身并不支持自增主键,需要通过序列(Sequence)和触发器(Trigger)实现。 创建表Student Create Table Student( id number(12) primary ...

    Oracle主键自增的办法

    以下是一个在 Oracle 中创建自增主键的详细步骤: 1. **创建序列**: Oracle 中的序列是一种可以生成唯一整数序列的对象。在这个例子中,我们可以创建一个名为 `seq.TableName` 的序列,其中 `TableName` 是表的...

    powerdesigner创建oracle_数据库表,设置表主键列为自动增长

    ### PowerDesigner 创建 Oracle 数据库表并设置主键...以上步骤详细介绍了如何使用PowerDesigner 12.5创建Oracle数据库表,并设置主键列的自动增长功能。这将极大地提高数据库开发的效率,并确保数据的一致性和完整性。

    Oracle中主键自增实例

    以下是一些关于在Oracle中创建主键自增实例的方法和相关知识点。 1. 使用序列(Sequences): Oracle序列是一种数据库对象,可以生成唯一的整数序列。创建序列后,可以在插入新记录时引用它来获取下一个可用的序列...

    Oracle创建主键自增表(sql语句实现)及触发器应用

    在Oracle数据库中,创建主键自增表是一项常见的任务,这有助于确保每个新插入的记录都有一个唯一的标识符。下面将详细讲解如何通过SQL语句实现这一功能,并结合触发器的应用来自动增加主键。 首先,我们创建一个...

    oracle 主键自增相关命令

    以下是对创建和使用Oracle主键自增的相关知识点的详细说明: 1. **创建表并定义主键**: 当我们创建表时,可以指定某列为主键。例如,创建名为`book`的表,`id`列为整数类型的主键: ```sql CREATE TABLE book ...

    Oracle创建自增字段sequence

    在Oracle数据库中,由于没有像SQL Server那样内置的自增字段功能,我们通常需要通过创建序列(SEQUENCE)和触发器(TRIGGER)来模拟这一效果。以下将详细讲解如何在Oracle中创建自增字段sequence,并讨论其相关知识...

    如何实现Oracle自增,序列,触发器都有

    ### 如何实现Oracle主键自增,通过写sequence和触发器 在Oracle数据库中实现主键自增功能可以通过创建序列(sequence)与触发器(trigger)相结合的方式实现。这种方式不仅能够确保数据表中的主键唯一性,还能自动递增...

    Oracle数据库创建表tuser设置主键自动增长

    ### Oracle数据库创建表tuser设置主键自动增长 在Oracle数据库中,创建一张包含自动增长主键的表是一项常见的需求。本文将详细介绍如何在Oracle环境中创建一个名为`tuser`的表,并实现其主键自动增长的功能。此外,...

    oracle主键自动增长

    ### Oracle主键自动增长知识点详解 #### 一、Oracle序列(Sequence)的使用方法 在Oracle数据库中,并没有像MySQL那样的自动增长字段特性,因此在实际应用中,我们常常需要手动实现这一功能。序列(Sequence)是...

    oracle中如何实现ID自增

    在Oracle数据库中,实现ID自增的一种常见方法是通过结合使用序列(Sequence)和触发器(Trigger)。这种方法非常实用,特别是在需要为表中的记录自动生成唯一标识符的情况下。 ##### 创建序列(Sequence) 首先,...

    oracle设置主键自动增长

    #### 二、创建表与自增主键 ##### 1. 创建表 首先,我们需要创建一张表。这里以 `example` 表为例,该表包含四个字段:`ID`(作为主键)、`NAME`、`PHONE` 和 `ADDRESS`。 ```sql CREATE TABLE example ( ID ...

Global site tag (gtag.js) - Google Analytics