oracle中实现主键的自动增加(csdn)

原创 2005年05月26日 08:41:00
 

实现方法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


MyBatis+Oracle实现主键自增长的几种常用方式

在最近做项目中,SSM框架+Oracle数据库,遇到前台没有传递主键值,需要在插入数据的时候实现主键自增长,因为oracle没有如同SqlServer和mysql一样的主键自增长的设计,所以只能迂回实...
  • wal1314520
  • wal1314520
  • 2017年08月13日 00:49
  • 353

oracle中实现主键的自动增加

网上广泛应用的oracle自增ID方法:一、建立表,用于Demo:create table t (n number ,v varchar2(10));  二、建立序列:create sequence ...
  • yanshenggd
  • yanshenggd
  • 2008年07月03日 11:44
  • 182

mybatis中Oracle数据库如何实现主键自增

我们在使用mybatis框架进行数据库插入操作时,经常会遇到主键自增的问题!MySQL和SQLserver本身就提供了主键自增的功能,所以我们用起来很方便,但是Oracle没有直接提供主键自增功能,这...
  • Alun_kong
  • Alun_kong
  • 2017年06月06日 16:50
  • 404

Oracle增加修改删除字段/主键

修改字段名称alter table xgj rename column old_name to new_name;修改字段类型alter table tablename modify (colum...
  • yangshangwei
  • yangshangwei
  • 2016年11月04日 23:20
  • 8469

Oracle建表,建序列,建触发器,自动生成唯一主键。dual解释

--根据数据库设计说明书创建表 --GOODS create table goods1 ( gid number(11) primary key, gname varchar2(20) not nul...
  • u012468263
  • u012468263
  • 2015年11月09日 11:29
  • 1028

oracle中的ID号实现自增长的方法(序列)

利用序列产生主键值。  序列(Sequence)是一种可以被多个用户使用的用于产生一系列唯一数字的数据库对象。序列定义存储在数据字典中,通过提供唯一数值的顺序表来简化程序设计工作,可以使用序列自动产...
  • benxiaohai888
  • benxiaohai888
  • 2017年09月02日 19:27
  • 310

mybatis配置oracle的主键自增长

mysql、sqlserver等数据库本身带有主键自增长像auto_increment的功能可以直接使用 useGeneratedKeys=”true”来实现,比如下面的配置 insert i...
  • linfanhehe
  • linfanhehe
  • 2016年03月16日 12:26
  • 2954

oracle数据库中怎么给已经在使用的表添加主键id的解决方法

新建id字段(这个就不用说了)因为已经使用的表中有一些旧数据了,在不能删除的情况下必须批量添加id,方法是:update T_TEST  set I_ID=rownum commit;这样 所有旧数据...
  • weixin_38791218
  • weixin_38791218
  • 2017年05月15日 18:39
  • 887

oracle添加主键的四种方法:

oracle添加主键的四种方法: 列级,表级建立主键 drop table constraint_test; 1.create table constraint_test ( name...
  • seeyouc
  • seeyouc
  • 2016年11月09日 17:19
  • 12932

[学习整理]oracle 实现 自增主键功能

之前有一项工作是将mysql的数据库实现转移到oracle,遇到了自增主键实现的问题。 首先介绍一下MySQL和Oracle的背景知识1)MySQL建表时必须有一个主键(PRIMARY KEY), ...
  • wenlele
  • wenlele
  • 2011年05月25日 19:37
  • 6316
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle中实现主键的自动增加(csdn)
举报原因:
原因补充:

(最多只允许输入30个字)