`
jackroomage
  • 浏览: 1197092 次
  • 性别: 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数据库中主键属性没有自增长,所以只能自己写程序来实现,用序列与触发器,可以解决这个 问题

    oracle中的sequence实现主键增长

    教你如何使用oracle中的sequence,实现主键自动增长

    在hibernate中实现oracle的自动增长

    在hibernate中实现oracle的自动增长

    Oracle与Mysql自动增长列(id)的区别

    Oracle必须通过创建sequence序列来实现自动增加列的功能。 首先要建立序列(当然必须要先建好表,添加好主键约束,这列假设约束名为test_sequence)  create sequence test_sequence [increment by 1]–增长的步长 ...

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

    1、创建表 代码如下: createtableTest_Increase( useridnumber(10)NOTNULLprimarykey,/*主键,自动增加*/ usernamevarchar2(20) ); 2、创建自动增长序列 代码如下: CREATESEQUENCETestIncrease_Sequence INCREMENTBY...

    Oracle 创建主键自增表示例代码

    我们经常在设计数据库的时候用一个系统自动分配的ID来作为我们的主键,但是在Oracle没有自增主键的设置,我们可以通过这篇文章介绍的方法实现,有需要的朋友们可以参考借鉴,下面来一起看看吧。

    oracle中的ID号实现自增长的方法

    序列定义存储在数据字典中,通过提供唯一数值的顺序表来简化程序设计工作,可以使用序列自动产生主键的键值。当一个序列第一次被查询调用时,它将返回一个预定值。在随后的每次查询中,序列将产生一个按指定的增量...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,...

    Oracle触发器

    –今天我们根据学到的东西实现一个id列自动增长的触发器 –首先我们需要建个表,主键id,name不为空 create table student( id number primary key, name varchar2(50) not null ) –查一下看看 select * from ...

    oracle数据库经典题目

    1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行时,必须...

    ORACLE之常用FAQ V1.0(整理)

    ORACLE之常用FAQ V1.0 4 第一部分、SQL&PL/SQL 4 [Q]怎么样查询特殊字符,如通配符%与_ 4 [Q]如何插入单引号到数据库表中 4 [Q]怎样设置事务一致性 4 [Q]怎么样利用游标更新数据 4 [Q]怎样自定义异常 4 [Q]十进制与...

    LTP.Net代码自动生成器(DbToCode)

    采用 Model + DAL + BLL + Web 的设计,主要实现在 C# 中对应数据库中表的基类代码的自动生成,包括生成属性、添加、修改、删除、查询、存在性、 Model 类构造等基础代码片断,使程序员可以节省大量机械录入的时间和...

    Oracle事例

    1.增加主键 alter table TABLE_NAME add constraint KEY_NAME primary key (TABLE_COLUMN); 指定表空间 alter table TABLE_NAME add constraint KEY_NAME primary key (TABLE_COLUMN) using index tablespace ...

    MybatisGeneratorPlus.zip

    支持 Oracle 使用 SEQUENCE 实现自增主键:需要事先建立好表主键对应的SEQUENCE,并且SEQUENCE的名称作出了要求:格式为table_name_SEQUENCEModel 类支持 Builder 模式创建,示例代码:User user = new User.Builder...

    C#.Net实体代码生成工具 v3.0

    同时通过实体可实现简单数据库添加、修改、删除、查询等操作,同时对添加和修改提供一个统一的保存操作(即实体会根据主键或实体条件值自动判断是更新还是插入);并提供大量的相关示例代码。同时由于考虑到数据库迁移...

Global site tag (gtag.js) - Google Analytics