1樓:
oracle 不想其他的資料庫,本身沒有自增的,你可以通過序列和觸發器的形式實現
oracle怎麼實現id自增和設定主鍵啊
2樓:十一月甜
可以使用序列實現id自增,主鍵的語法為primary key。
當一個序列第一次被查詢呼叫時,它將返回一個預定值。在隨後的每次查詢中,序列將產生一個按指定的增量增長的值。序列可以迴圈,或者是連續增加的,直到指定的最大值為止。
建立序列語法如下:create sequence [模式]序列名稱[start with 起始數字] [increment by 增量][maxvalue 最大值|nomaxvalue][minvalue 最小值|nominva lue][cycle|nocuyle][cache 數目|nocache][order|noorder]。
具體**示例如下:
建立表create table book(
bookid varchar2(4) primary key,
name varchar2(20)
建立序列
create sequence book_seq start with 1 increment by 1;
建立觸發器
create or replace trigger book_trigger
before insert on book
for each row
begin
select book_seq.nextval into :new.bookid from dual;
end ;
新增資料
insert into book(name) values ('cc');
insert into book(name) values ('dd');
commit;
3樓:匿名使用者
呵呵,這個問題,是從其他資料庫轉過來的開發者最常見的問題。
1、關於主鍵:在建表時指定primary key字句即可:
create table test(
id number(6) primary key,
name varchar2(30)
);如果是對於已經建好的表,想增加主鍵約束,則類似語法:
alter table test add constraint pk_id primary key(id);
其中add constraint 和 primary key是關鍵字,pk_id是主鍵名稱,自定義的額,只要不重複即可。
2、關於id自增功能,也很簡單,而且比較靈活。
(1)首先建立一個序列(就是每次查詢會自動增加值的絕不重複的物件,比如每次加1或每次加10)。語法:
create sequence 序列名
[increment by n] --每次加幾
[start with n] --序列從幾開始
--最小值、最大值的限制
比如create sequence s_test start with 1 increment by 1; --就是建立了額一個從1開始每次加1的序列。
訪問序列時,用 序列名稱.nextval的語法。
比如對於上表,如果想要id欄位實現自增。則在每次插入記錄時,使用下面類似的語法(前提是表和序列已經建好)。
insert into test values (s_test.nextval,'張三');
當然,你也可以自動一些,對錶的插入操作,建立一個觸發器,每當有資料插入時,觸發器自動修改id值為序列的新值,這樣就完全實現自增id功能了。不過其實也沒有這個必要。因為觸發器如果建多了,有時會比較混亂,不易管理。
辛苦手碼了這麼多字,如果能幫到你,請及時採納最佳。
oracle建表id自動增長
4樓:紅草
可以使用oracle的sequence實現自增長。
oracle資料庫中怎樣給表建立自動增長列???
5樓:匿名使用者
1、在oracle中沒有想sqlserver自動增長列,如果想要達到這個效果必須要自己建立索引
2、建立索性,可以為你這個需要自動增長的表建立觸發器,觸發器自動幫你完成自動增長工作
3、第二種方法:建立索性,插入的時候自動獲取索引的下一個值
6樓:匿名使用者
沒看見採納啊,暈了,這樣麻煩的話,用oracle自帶的吧,
create sequence seq;
create table person(id number(3),name varchar2(10));
insert into person values (seq.nextval,「測試1」);
insert into person values (seq.nextval,「測試2」);
insert into person values (seq.nextval,「測試3」);
select * from person;
id:結果 1 2 3
7樓:匿名使用者
create sequence 序列的名字。 這樣就可以了 用這種自動增長的 還有什麼不懂,可以問問
oracle資料庫建立自動增長的表空間語句怎麼寫?
oracle 建表並設定 主鍵 自增
8樓:匿名使用者
可以建立主鍵,但是不可以自增,需要通過程式實現或觸發器實現。
create table t (
a number(14) not null,b varchar2(11) not null,c varchar2(20) not null,d varchar2(60),
e varchar2(20) not null,f varchar2(50) not null,constraint pk$t primary key (a) -- 主鍵 pk$t 是主鍵名);
oracle建立表中怎麼實現自增長
9樓:匿名使用者
先建一個equence
create sequence dept_seqminvalue 1
maxvalue 1000
start with 1
increment by 1
再建一個觸發器
當向表裡插入資料時候
編號可以自動增加
10樓:匿名使用者
在系號departmentid欄位上建立序列
11樓:匿名使用者
create table department(departmentid int primary key auto increment,deptname varchar2(20) not null);
12樓:莆田老斯基
建一個sequence,然後在插入資料的時候用.nextval就可以了
13樓:匿名使用者
建立一個序列。並且這個序列要設定好,否則,這個號碼不一定按遞增;
14樓:都來跪拜大多特
oracle沒有自增列,用sequence +觸發器
15樓:匿名使用者
sequence或者觸發器
16樓:匿名使用者
建立一個序列,然後通過觸發器使:new.departmentid:=序列.nextval
oracle建表語句,id是自動增長,要完整的建表語句 5
17樓:匿名使用者
oracle的id自動增長一般是通過序列實現的,跟建表的語句沒有關係的!
18樓:匿名使用者
create sequence add_empincrement by 1 -- 每次遞增1start with 1 -- 從1開始nomaxvalue -- 沒有最大值minvalue 1 -- 最小值=1nocycle; -- 不迴圈
19樓:匿名使用者
一樓的回答很正確,oracle沒有所謂的自增長,你可以用tigger或序列來實列,或者可以用uuid,
sql建立**語句主鍵自動增加
20樓:放飛新的人生
如果是mysql,可以使用auto_increment關鍵字,表示自增長。
比如:create table test
(id int(20) not null auto_increment,
primary key (id)
);如果是oracle,可以使用序列。
為什麼是全表掃描,索引沒起作用,Oracle 11g遞迴子句
不知道你建立的是b樹索引還是點陣圖索引,照你所說的person表應該建立關於deptid的點陣圖索引,因為單位的數量不會很多吧。oracle會自動在需要檢索需要超過一定比例的行後進行全表掃描,而不是使用索引。更新 確實我的是錯的了。樓下說的多重迴圈才對,1k多 2萬 一千多萬次了。看語句能不能改改了...
Oracle怎樣建立關係表與其他的表關聯
設定外來鍵唄 如果用jdeveloper開發的話 直接在介面就能用箭頭來關聯就可以了 eo 實體 vo 檢視 介面 3個組合起來就行了 需要你設定主外來鍵的,那樣就可以關聯了 主鍵關鍵字是primary key 外來鍵的關鍵字是 foreign key 例如下面這兩個表中分別存的時員工的基本資訊和公...
oracle中如何用命令建立表空間
oracle建立表空間有多種方法 如下 方法1 建立,如下 sql edi 已寫入 file afiedt.buf 1 create tablespace ts1 2 datafile f oracle product 10.2.0 oradata orcl ts1.dbf size 100m 3 ...