`
hm4123660
  • 浏览: 278674 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
Dea4ce76-f328-3ab2-b24a-fb268e1eeb75
数据结构
浏览量:69132
社区版块
存档分类
最新评论

oracle11g自增主键

阅读更多

oracle的自增主键需要用序列和触发器来实现,

我们首先创建一张表:主键为int,实现自增


createtableTEST

 

(

 

  ID intPRIMARYKEY,

 

  test1 varchar2(20),

 

  test2 varchar2(20),

 

  test3 varchar2(20)

)

 

 

创建一个序列:


create sequence SEQ_TEST

 

minvalue 1    --最小值

 

maxvalue 999999999999999999999999999 --最大值

 

start with 1 ---1开始

 

increment by 1 ---每次加1

 

nocycle        --一直累加,不循环

       nocache;

 

 

创建一个触发器实现数据插入时主键自增:

 


CREATE OR REPLACE TRIGGER tg_test

 

//test表名,id主键名,seq_test.nextval序列

 

BEFORE INSERT ON test

FOR EACH ROW WHEN (new.id is null)

 

     begin

 select seq_test.nextval into:new.id from dual;

 

end;

 

 

可以看出当插入数据主键为空时,会使用序列产生自增主键

 

//------------------触发器样式

 

CREATE OR REPLACE TRIGGER TRI_SCORE

 

BEFORE INSERT OR UPDATE ON XUANKE

 

FOR EACH ROW

 

BEGIN

 

//如果score为空,则令score=0

 

  IF :new.SCORE IS NULL THEN :new.SCORE:= 0;

 

    END IF;

 

END;

 

 

 

分享到:
评论

相关推荐

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

    主键自增在插入数据的时候是很实用的,可以获取并操作返回的插入记录的ID,接下来介绍Oracle如何创建主键自增表,感兴趣的你可以了解下,就当是巩固知识,希望此文对你有所帮助

    Navicat Premium中Oracle创建主键自增的方法

    到此这篇关于Navicat Premium中Oracle创建主键自增的方法的文章就介绍到这了,更多相关Navicat Premium主键自增内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!

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

    Oracle的字段自增功能,可以利用创建触发器的方式来实现,接下来我们就来看看Oracle数据库中创建自增主键的实例教程,需要的朋友可以参考下

    oracle如何设置主键自增.doc

    oracle设置主键自增的方法,可以图形化界面也可以用sql语句,两种方法均亲自验证过。

    oracle数据库主键自增并且返回主键值

    一、创建序列 1.1、直接在PLSQL中设置 1.2、命令创建 create sequence seq_users ##创建序列seq_users increment by 1 ## 步长,每次加1 start with 1 ##从1开始 minvalue 1 ##最小值 maxvalue 9999999 ##最大值 ...

    oracle中创建自增主键的方法

    oracle中创建自增主键的方法

    ORACLE自增主键设置方法

    ORACLE自增主键设置方法ORACLE自增主键设置方法

    最新Mybatis插入数据返回自增主键详细配置

    Mybatis插入数据返回自增主键 Mybatis插入数据以后只会返回影响的数据库行数,如果是插入一条数据成功则返回1,失败返回零,插入多条返回插入成功的数量。 通过注解或者xml配置无法直接返回自增的主键。Mybatis插入...

    oracle迁移mysql自增序列问题

    今天从oracle迁移数据到mysql碰到个需求:原先的主键字段需要改成mysql中的自增字段,而且原先数据的值不能变,以后新插入的值从原先数据最大的值开始自增。 解决办法: 构建环境: mysql> CREATE TABLE test -> ( ...

Global site tag (gtag.js) - Google Analytics