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 SEQUENCE的简单介绍 很有用哦
在设计数据库表的时候发现Oracle没有自增主键的设置,Google了解到Oracle本身并不支持自增主键,需要通过序列(Sequence)和触发器(Trigger)实现。 创建表Student Create Table Student( id number(12) primary ...
oracle 主键自增 给你个例子吧:看看肯定明白了!!! 首先,你要有一张表! CREATE TABLE example( ID Number(4) NOT NULL PRIMARY KEY, NAME VARCHAR(25), PHONE VARCHAR(10), ADDRESS VARCHAR(50) ); ...
oracle 实现自增;使用sequence,和trigger实现表字段自增
教你如何使用oracle中的sequence,实现主键自动增长
Oracle中没有sqlserver中那么方便的自增序列,如果想要达到sqlserver中那种效果,也不是很麻烦,需要创建一个自增序列SEQUENCE,然后建一个触发器即可。 CREATE SEQUENCE emp_sequence INCREMENT BY 1 — ...
本方法为使用SEQUENCE(序列) 例如有表temp_test结构为: create table TEMP_TEST ( id number, nm varchar(10), primary key(id) //id为主键,下面的方法把它设为自增字段 ) 1、建立...
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方接下来为大家介绍下Oracle创建自增字段方法感兴趣的各位可不要错过了哈
如何实现Oracle主键自增,通过写sequence和触发器,很全面,绝对帮你解决问题
先假设有这么一个表: 代码... 在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, CREAT
oracle 数据库建表id自增的sql语句创建sequence的名称,S_out_gold这个为
create sequence seq_users ##创建序列seq_users increment by 1 ## 步长,每次加1 start with 1 ##从1开始 minvalue 1 ##最小值 maxvalue 9999999 ##最大值 order ##确保按照请求次序生成整数 【不常用的设置】....
主要介绍了浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在Oracle中,可以为每张表的主键创建一个单独的序列,然后从这个序列中获取自动增加的标识符,把它赋值给主键。 创建序列SEQ_ID,起始值为1,增量为1 create sequence SEQ_ID increment by 1 start with 1
给大家分享MyBatis Oracle 自增序列的实现方法及mybatis配置oracle的主键自增长的方法,非常不错具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
NULL 博文链接:https://duqiangcise.iteye.com/blog/749438
今天从oracle迁移数据到mysql碰到个需求:原先的主键字段需要改成mysql中的自增字段,而且原先数据的值不能变,以后新插入的值从原先数据最大的值开始自增。 解决办法: 构建环境: mysql> CREATE TABLE test -> ( ...
5-1+Masked+Conditional+Random+Fields+for+Sequence+Labeling
1、创建表 代码如下: createtableTest_Increase( useridnumber(10)NOTNULLprimarykey,/*主键,自动增加*/ usernamevarchar2(20) ); 2、创建自动增长序列 代码如下: CREATESEQUENCETestIncrease_Sequence INCREMENTBY...
很多人都知道在Oracle中并没有像其他数据库中的自增字段,那么我们怎样才能实现Oracle的自增字段功能呢?本文介绍了通过Oracle中的Sequence和Trigger来实现此功能。