--自動(dòng)編號(hào):Oracle
建表
create table t1(autoid number(10) primary key,name char(4));
創(chuàng)建序列
create sequence seq_t1_autoid;
添加數(shù)據(jù)
insert into t1(autoid,name) values(seq_t1_autoid.nextval,'a');
insert into t1(autoid,name) values(seq_t1_autoid.nextVal,'b');
commit;
--思考:能不能實(shí)現(xiàn)一個(gè)與DBMS無(wú)關(guān)的自動(dòng)編號(hào)方法?
insert into t1(autoid,name) select max(autoid)+1,'c' from t1;
insert into t1(autoid,name)??select max(autoid)+1,'d' from t1;
commit;
--改正:
insert into t1(autoid,name) select nvl(max(autoid),0)+1,'c' from t1;
insert into t1(autoid,name)??select nvl(max(autoid),0)+1,'d' from t1;
commit;
面試:如何在Oracle中實(shí)現(xiàn)與Mysql一樣的自動(dòng)編號(hào):
解決:使用觸發(fā)器
create table t1(autoid number(10) primary key);
create sequence seq_t1_autoid;
create or replace trigger tr_t1_autoid
before insert on Friend
for each row
begin
??select seq_t1_autoid.nextval into :new.autoid from dual;
end;
--測(cè)試:
insert into t1(name) values('a');
insert into t1(name) values('b');
commit;
select * from t1;?
autoid? name??
?????1?? ? ?a????
?????2????? b????
+--------+------+
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
