oracle怎么写自增 oracle怎么实现自增

oracle自增长怎么做?

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

创新互联于2013年开始,是专业互联网技术服务公司,拥有项目成都网站制作、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元桦川做网站,已为上家服务,为桦川各地企业和个人服务,联系电话:028-86922220

如果要用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是怎么实现表的自增

用触发器trigger的功能来实现它: 1、首先建立一个创建自增字段的存储过程create or replace procedure pro_create_seq_col

(tablename varchar2,columnname varchar2)

as

strsql varchar2(1000);

begin

strsql := 'create sequence seq_'||tablename||' minvalue 1 maxvalue 999999999999999999 start with 1 increment by 1 nocache';

execute immediate strsql;

strsql := 'create or replace trigger trg_'||tablename||' before insert on '||tablename||' for each row begin select seq_'||tablename||'.nextval into :new.'||columnname||' from dual; end;';

execute immediate strsql;

end;

/

2、Oracle中执行动态SQL时要显示授权(即使该用户拥有该相关权限)GRANT CREATE ANY SEQUENCE TO UserName;

GRANT CREATE ANY TRIGGER TO UserName;

3、重新Compile存储过程pro_create_seq_col; 4、搞定,下面我们就可以用这个存储过程建立自增自段了。 5、调用存储过程建立自增字段(提示: 第一个参数是表名,第二个参数为自增字段的名字)exec pro_create_seq_col('sb_zsxx','zsxh');

exec pro_create_seq_col('sb_sbxx','sbxh');

exec pro_create_seq_col('sb_jkx','pzxh');

exec pro_create_seq_col('sdspfp','sysfpid');

如何设置oracle数据库自增字段

这里Oracle数据库使用命令行操作,注意Oracle不能直接设置自增字段,需要使用序列+触发器来实现。

1.创建Book表

Create table Book(

Id NUMBER(6) constraint s_PK primary key,

Title nvarchar2(200) not null,

Author nvarchar2(200) not null,

Publisher nvarchar2(200) not null,

ISBN nvarchar2(50) not null,

Price NUMBER(6,2) not null,

CategoryName nvarchar2(50) not null,

Description nvarchar2(1000) not null,

ImageName varchar2(50)

);

2.创建自增序列

create sequence BOOK_seq (BOOK_seq为序列名,任意取)

increment by 1 (increment 表示字段逐条增加1)

start with 1 (设置自增序列的初始值为1)

nomaxvalue (不限制自增序列的最大值)

minvalue 1; (设置自增序列的最小值为1)

3.试用一下,向BOOK表中插入一条数据,Id列就引用了自增序列。

insert into BOOK values(BOOK_seq.nextval,'a','a','a','a',32.1,'a',

'a','1.jpg');

注意:

操作之后记得输入“commit;“保存操作。

Oracle数据库的的命令行创建表,系统会自动转化为大写字母,假如使用数据库操作客户端,那么建表等操作时记得字段名大写。

Oracle怎么建自动增长列

oracle:

oracle没有自增长序列,因此可以用以下方法来实现

1.建立表格:

createtabletable1

(

cidnumber(8)notnull,

othersvarchar2(20)

);

2.建立从1开始的序列:

createsequenceemp_sequence

incrementby1--每次加几个

startwith1--从1开始计数

nomaxvalue--不设置最大值

nocycle--一直累加,不循环

nocache--不建缓冲区3.建立触发器:

createorreplacetriggermytgr

beforeinsertontable1foreachrow

begin

selectmytgr.nextvalinto:new.cidfromdual;

end;

mysql:

createtabletbname(a_idunsignedintprimarykeyauto_incrementnotnull,

a_titlevarchar(32),

a_contenttext);

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怎么写自增 oracle怎么实现自增
分享地址:http://ybzwz.com/article/hhooij.html