资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

oracle如何才能自增 Oracle 自增

oracle自增长怎么做?

首先,Oracle中没有像MySQL那样的id自增长功能

目前成都创新互联公司已为成百上千家的企业提供了网站建设、域名、网站空间绵阳服务器托管、企业网站设计、眉山网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

如果要用Oracle这么做的话首先要先建一个表,如:

CREATE

TABLE

test(

ID

Number(4)

NOT

NULL

PRIMARY

KEY,

NAME

VARCHAR(25),

PHONE

VARCHAR(10),

ADDRESS

VARCHAR(50));

然后,你需要一个自定义的sequence:

CREATE

SEQUENCE

emp_sequence

INCREMENT

BY

1

--

每次加几个

START

WITH

1

--

从1开始计数

NOMAXVALUE

--

不设置最大值

NOCYCLE

--

一直累加,不循环

NOCACHE

--

不建缓冲区

你只有了表和序列还不够,还需要一个触发器来执行它:

CREATE

TRIGGER

"触发器名称"

BEFORE

INSERT

ON

example

FOR

EACH

ROW

WHEN

(new.id

is

null)

begin

select

emp_sequence.nextval

into:

new.id

from

dual;

end;

这时你再向test表中插数据就可以不用管id了

oracle中如何实现某一字段自增

-----oracle 指定字段 自增 ,1.要先创建一个序列 2. 之后创建一个触发器

--- 序列 (序列与触发器实现t_sys_organize表中F_ID字段的自动增长)

create sequence t_sys_organize_F_ID_SEQUENCE

minvalue 100000

maxvalue 99999999

start with 100000

increment by 1

nocache;

--触发器 (序列与触发器实现t_sys_organize表中F_ID字段的自动增长)

CREATE OR REPLACE TRIGGER t_sys_organize_F_ID_TRIGGER BEFORE INSERT ON t_sys_organize FOR EACH ROW WHEN(NEW.F_ID IS NULL)

BEGIN

SELECT t_sys_organize_F_ID_SEQUENCE.NEXTVAL INTO:NEW.F_ID FROM dual;

END;

oracle 如何实现主键id自增,或自动生成

一、主键id自增

oracle 中不能设置自动增加,这个和其他数据库不一样,但是有 序列,这个是Oracle自己特有的东西,

1、首先创建序列:create sequence seq;

语法:

CREATE SEQUENCE 序列名

[INCREMENT BY n] --每次加几

[START WITH n] --序列从几开始

[{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --小值、大值限制

比CREATE SEQUENCE seq start with 1 increment by 1; --建立了额从1开始每次加1序列

访问序列时用 序列名称.nextval语法

这就创建好了,然后 seq.nextval 就会返回一个值,不会重复的值,

insert into tablename values(seq.nextval,'test');

insert into tablename values(seq.nextval,'test');

insert into tablename values(seq.nextval,'test');

这样前3个id 分别是 1,2,3

二、自动生成UUID策略

import java.util.UUID;

Student s = new Student();

s.setId(UUID.randomUUID().toString());


本文名称:oracle如何才能自增 Oracle 自增
本文路径:http://cdkjz.cn/article/hhoigs.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220