`
jackroomage
  • 浏览: 1217687 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

oracle中实现主键的自动增加

 
阅读更多

实现方法1:
建立一个最小为1,最大为nomaxvalue的一个序列号会自动循环的序列

create sequence 序列名
increment by 1
start with 1
nomaxvalue
nocycle;

当向表中插入数据时,SQL语句写法如下:
SQL> insert into 表名 values(序列名.nextval,列1值,列2值, ...);
当要重用该序列号时,有两种方法:
a. 在同一个sql块中重用:
SQL>insert into表名(序列名.currval, 列1值,列2值...);
b. 在存储进程中,将该值取到一个参数中:
SQL>select序列名.nextval into 参数名 from dual;
然后在重用该序列号的地方调用这个参数。

 

实现方法2:(利用触发器)

SQL> create sequence a_sequence
2 start with 1
3 increment by 1;

序列已创建。

SQL> create table t (n number ,v varchar2(10));

表已创建。

SQL> create or replace trigger t_trg
2 before insert or update on t
3 for each row
4 begin
5 select a_sequence.nextval into :new.n from dual;
6 end;
7 /

触发器已创建

SQL> insert into t values(111,'ok');

已创建 1 行。

SQL> select * from t;

N V
---------- ----------
1 ok

分享到:
评论

相关推荐

    oracle触发器实现主键自动增长

    在Oracle数据库中,实现主键自动增长是一种常见的需求,尤其在设计高并发、大数据量的系统时,确保每个记录都有一个唯一且连续的标识符变得至关重要。本文将深入探讨如何利用Oracle触发器来实现这一功能,同时也会...

    oracle主键自动增长

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

    oracle设置主键自动增长

    为了实现主键自动增长,我们需要先创建一个序列。序列是一种用于生成一系列数值的对象,可以用于自动为主键生成唯一的值。 ```sql CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次增加的值 START WITH 1 -- ...

    oracle序列主键自增长

    为了实现主键自动增长,Oracle提供了序列(Sequences)这一特性,它能按照预设的规则(通常是递增)生成唯一的整数。本文将深入探讨Oracle序列主键自增长的工作原理、创建方法以及如何在表中应用。 **1. Oracle序列...

    oracle数据库主键自动生成

    在 Oracle 数据库中,主键自动生成是指在插入数据时自动生成唯一的主键值,从而简化数据录入和维护工作。下面将详细介绍 Oracle 数据库主键自动生成的实现方法和相关知识点。 序列(Sequence) 序列是一种数据库...

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

    本文将详细介绍如何在Oracle环境中创建一个名为`tuser`的表,并实现其主键自动增长的功能。此外,还将介绍如何通过序列(sequence)来管理这个自动增长的主键值。 #### 一、创建表tuser 首先,我们需要定义`tuser`表...

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

    ### PowerDesigner 创建 Oracle 数据库表并设置主键自动增长 #### 一、PowerDesigner与Oracle数据库集成概述 PowerDesigner是一款强大的数据库设计工具,它能够帮助开发者进行数据建模、概念设计以及物理数据库的...

    oracle中的sequence实现主键增长

    总的来说,Oracle中的Sequence提供了一种可靠且灵活的方式来生成序列号,适用于需要自动增长主键的场景。通过合理配置和使用,可以有效避免数据冲突,提高插入数据的效率。在设计数据库时,应根据具体业务需求来决定...

    oracle设置主外键即主键序列自动增长

    #### 二、创建序列和触发器实现主键自动增长 为了实现主键的自动增长,我们需要创建两个序列和两个触发器。 ##### 1. 创建序列 ```sql CREATE SEQUENCE userinfo_sequence; CREATE SEQUENCE groupinfo_sequence; `...

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

    这不仅有助于确保数据的唯一性,还能简化开发过程中的某些环节,尤其是在需要自动增长的主键时。下面将详细介绍如何通过序列(Sequence)和触发器(Trigger)来实现在Oracle中创建自增的主键。 #### 序列(Sequence...

    ORACLE自增主键设置方法

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

    Oracle中主键自增实例

    虽然Oracle没有内置的自动递增主键,但可以通过序列和触发器等方式实现。不过,应谨慎使用自增主键,因为它可能暴露表的数据结构。通常建议使用业务相关的唯一标识作为主键,这样既能保证唯一性,又能提高数据安全性...

    在hibernate中实现oracle的自动增长

    Oracle数据库提供了强大的序列(sequence)功能来支持自动增长,这是实现主键自动生成的有效手段。与MySQL或SQL Server等其他数据库系统不同,Oracle不直接支持自增列(auto-increment column),而是通过序列(sequence)...

    oracle 自增长主键.doc

    Oracle数据库系统中,自增长主键是一种常见的设计模式,用于创建具有自动递增的唯一标识符。在Oracle中,我们通常使用序列(Sequence)来实现这个功能,而不是像其他数据库系统那样使用内置的自增机制。以下是对...

    oracle中用序列实现自动增长值

    在Oracle数据库系统中,与SQL Server中的`IDENTITY`特性类似,我们可以通过使用序列(Sequences)来实现字段的自动增长值。序列是一种特殊的数据库对象,它可以生成一系列有序的数值,通常用于为表的主键字段提供...

    oracle中设置自增主键参考

    本文将详细介绍如何在Oracle中实现自增主键的功能。 #### 创建表与自增序列 在创建表时,我们首先需要定义一个数字类型的字段作为主键,并设置为`NOT NULL`以确保该字段不能为空。然后,通过创建一个自增序列来...

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

    接下来,我们需要创建一个序列(Sequence)来实现主键的自动增加。序列在Oracle中是一种特殊的数据类型,它可以按照指定的步长(默认为1)生成唯一的数字。以下是如何创建名为`TestIncrease_Sequence`的序列: ```...

Global site tag (gtag.js) - Google Analytics