如何給oracle中的表建序列,如何給oracle中的表建乙個序列

2022-06-25 15:55:03 字數 5096 閱讀 4441

1樓:

在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。

1、createsequence

你首先要有createsequence或者createanysequence許可權,

createsequenceemp_sequence

incrementby1--每次加幾個

startwith1--從1開始計數

nomaxvalue--不設定最大值

nocycle--一直累加,不迴圈

cache10;

一旦定義了emp_sequence,你就可以用currval,nextval

currval=返回sequence的當前值

nextval=增加sequence的值,然後返回sequence值

比如:emp_sequence.currval

emp_sequence.nextval

可以使用sequence的地方:

-不包含子查詢、snapshot、view的select語句

-insert語句的子查詢中

-nsert語句的values中

-update的set中

可以看如下例子:

insertintoempvalues

(empseq.nextval,'lewis','clerk',7902,sysdate,1200,null,20);

selectempseq.currvalfromdual;

但是要注意的是:

-第一次nextval返回的是初始值;隨後的nextval會自動增加你定義的incrementby值,然後返回增加後的值。currval總是返回當前sequence的值,但是在第一次nextval初始化之後才能使用currval,否則會出錯。一次nextval會增加一次sequence的值,所以如果你在同乙個語句裡面使用多個nextval,其值就是不一樣的。

明白?-如果指定cache值,oracle就可以預先在記憶體裡面放置一些sequence,這樣訪問的快些。cache裡面的取完後,oracle自動再取一組到cache。使用cache或許會跳號,比如資料庫突然不正常down掉(shutdownabort),cache中的sequence就會丟失.

所以可以在createsequence的時候用nocache防止這種情況。

2、altersequence

你或者是該sequence的owner,或者有alteranysequence許可權才能改動sequence.可以alter除start至以外的所有sequence引數.如果想要改變start值,必須dropsequence再re-create.

altersequence的例子

altersequenceemp_sequence

incrementby10

maxvalue10000

cycle--到10000後從頭開始

nocache;

影響sequence的初始化引數:

sequence_cache_entries=設定能同時被cache的sequence數目。

可以很簡單的dropsequence

dropsequenceorder_seq;

2樓:汗笑天

�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2oracle建立序列地可以用工具建立,也可以用**建立,但dvvislizer建立的序類好像是不能用的。

oracle表中怎麼建序列

3樓:

oracle表中建立序列語法:

create sequence name

[increment by n]

[start with n]

示例:increment by n:表明值每次增長n(步長)。

start with n: 從n開始。

: 設定最大值。

: 設定最小值,start with不能小於最小值。

cycle | nocycle          : 是否迴圈,建議不使用

cache n | nocache    : 是否啟用快取。

2、插入資料到表中

示例:insert into emp values

(emp_sequence .nextval, 'lewis', 'clerk',7902, sysdate, 1200, null, 20);

oracle資料庫系統是目前世界上流行的關聯式資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的 適應高吞吐量的資料庫解決方案。

oracle資料庫是目前世界上使用最為廣泛的資料庫管理系統,作為乙個通用的資料庫系統,它具有完整的資料管理功能;作為乙個關聯式資料庫,它是乙個完備關係的產品;作為分布式資料庫它實現了分布式處理功能。

4樓:百小度

在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。

1、create sequence

你首先要有create sequence或者create any sequence許可權,

create sequence emp_sequence

increment by 1 -- 每次加幾個

start with 1 -- 從1開始計數

nomaxvalue -- 不設定最大值

nocycle -- 一直累加,不迴圈

cache 10;

一旦定義了emp_sequence,你就可以用currval,nextval

currval=返回 sequence的當前值

nextval=增加sequence的值,然後返回 sequence 值

比如:emp_sequence.currval

emp_sequence.nextval

可以使用sequence的地方:

- 不包含子查詢、snapshot、view的 select 語句

- insert語句的子查詢中

- nsert語句的values中

- update 的 set中

可以看如下例子:

insert into emp values

(empseq.nextval, 'lewis', 'clerk',7902, sysdate, 1200, null, 20);

select empseq.currval from dual;

但是要注意的是:

- 第一次nextval返回的是初始值;隨後的nextval會自動增加你定義的increment by值,然後返回增加後的值。currval 總是返回當前sequence的值,但是在第一次nextval初始化之後才能使用currval,否則會出錯。一次nextval會增加一次sequence的值,所以如果你在同乙個語句裡面使用多個nextval,其值就是不一樣的。

明白?- 如果指定cache值,oracle就可以預先在記憶體裡面放置一些sequence,這樣訪問的快些。cache裡面的取完後,oracle自動再取一組到cache。 使用cache或許會跳號, 比如資料庫突然不正常down掉(shutdown abort),cache中的sequence就會丟失.

所以可以在create sequence的時候用nocache防止這種情況。

2、alter sequence

你或者是該sequence的owner,或者有alter any sequence 許可權才能改動sequence. 可以alter除start至以外的所有sequence引數.如果想要改變start值,必須 drop sequence 再 re-create .

alter sequence 的例子

alter sequence emp_sequence

increment by 10

maxvalue 10000

cycle -- 到10000後從頭開始

nocache ;

影響sequence的初始化引數:

sequence_cache_entries =設定能同時被cache的sequence數目。

可以很簡單的drop sequence

drop sequence order_seq;

5樓:匿名使用者

-- create sequence

create sequence sn increment by 1 start with 1

建立乙個序列

-- create table

create table aaa2

( sn integer not null,id char(18) null,

name char(18) null,

) insert into aaa2 values(sn.nextval,'test','test')

oracle 建立序列

6樓:匿名使用者

create sequence emp_sequence --序列名

increment by 1 -- 每次加幾個start with 1 -- 從1開始計數nomaxvalue -- 不設定最大值nocycle -- 一直累加,不迴圈cache 10;

oracle語句中如何在表的某一列下建立序列

7樓:

create table transaction3(transaction_id numbergenerated by default as identity (start with 100 increment by 10),

holding_id number,transaction_type number,transaction_date date,credit_value number,debit_value number);identity columns 是oracle 12c新特性, 如果你要再12c之前實現該功能 一般要用到 trigger.

oracle序列怎麼寫,oracle表中怎麼建序列

sql create sequence test sequence2 2 increment by 1 每次遞增13 start with 1 從1開始4 nomaxvalue 沒有最大值5 minvalue 1 最小值 16 nocycle 不迴圈sequence created.上面的語句,建立...

oracle資料庫表中,插入資料的時候如何產生母 數字編號

先建立乙個sequence 然後給插入資料的表寫個trigger before insert 的時候 設定這個欄位的值為 sd sequence.nextval create sequence 表名 seq increment by 1 start with 100000001 nocache in...

在oracle中如何將表中所有資料加到另表中

create table newtablename as select from oldtablename insert into tab2 id,num select id,num,from tab1 where id 12 如果是全部複製的話 這個where 條件可以省略。其實你簡單的而理解後面...