大致思路:在oracle中建立乙個存放增長值的物件,然後每次向表中插入資料時都呼叫這個物件的nextval,這樣就實現了自增。
第一步:建立乙個測試表--t_userinfo
create table t_userinfo(
c_id number(10),
c_name varchar2(58)
)
第二步:建立存放增長值的物件--seq_userinfo
create sequence seq_userinfo
minvalue 1
maxvalue 999999999999999
increment by 1
start with 111
cache 24
order
cycle;
第三步:測試,插入資料
insert into t_userinfo values( seq_userinfo.nextval,'名字'''||seq_userinfo.currval||'''');
如何用儲存過程批量得去插入資料呢?
declare
type test_rec is record(
t_start number(10),
t_end number(10) not null :='100'-- 預設一百條記錄終止
);
v_test test_rec;
begin
delete from t_userinfo;-- 清空以前的記錄
v_test.t_start:= 1; --再次宣告變數值
v_test.t_end:= 24; --再次宣告變數值
loop
exit when v_test.t_start>v_test.t_end;
dbms_output.put_line('v_test.t_start的當前值:'||v_test.t_start); -- 輸出語句
v_test.t_start := v_test.t_start + 1;
insert into t_userinfo values( seq_userinfo.nextval,'名字'''||seq_userinfo.currval||''''); --插入語句
commit;
end loop;
end;
這個儲存過程寫得比較複雜,還可以更簡單,比如用for等的迴圈,在此不再闡述了、
ORACLE建立主鍵自增表
建立表,設定主鍵自增 create table stu uerid number 4 not null primary key,username varchar 20 userpass varchar 20 email varchar2 30 grade number 5 commit 小查一下 s...
Oracle 建立自增
minvalue 1maxvalue 99999999 start with 1increment by 1nocache order create sequence seqtest increment by 1 每次加幾個 start with 1 從1開始計數 nomaxvalue 不設定最大值...
如何建立主鍵自增表 oracle
建立表 create table t student id number 10 not null,createtime date not null,constraint pk t student primary key id 新增注釋 comment on table t student is 學生...