? ? oracle在創(chuàng)建表時(shí)和其他的數(shù)據(jù)庫(kù)有點(diǎn)不一樣,如SQL SERVER可以在int類型的字段后加上
identity(1,1)
,該字段就會(huì)從1開(kāi)始,按照+1的方式自增,將這個(gè)字段設(shè)置為主鍵,有利于我們進(jìn)行數(shù)據(jù)的插入操作。MySql中可以使用“auto_increment”即可。但是oracle有點(diǎn)麻煩,需要使用序列和觸發(fā)器達(dá)到目的。
?????? DeptNo number,
?????? EmpNo number,
?????? Ename varchar2(16),
?????? Job varchar2(32),
?????? Sal float,
?????? HireDate date,
?????? constraint pk_employee primary key(EmpNo)
? ? ? ? );
?????maxvalue 9999999999999999999999999999
?????start with 1
?????increment by 1
?????nocache;
? ? ?首先我們創(chuàng)建一個(gè)員工表。
? ? ?create table employee(
?????? Id int ,
?????? DeptNo number,
?????? EmpNo number,
?????? Ename varchar2(16),
?????? Job varchar2(32),
?????? Sal float,
?????? HireDate date,
?????? constraint pk_employee primary key(EmpNo)
? ? ? ? );
?
? ? ?第二,創(chuàng)建員工表自動(dòng)增長(zhǎng)序列
? ? ?create sequence employ_autoinc
?????minvalue 1
?????maxvalue 9999999999999999999999999999
?????start with 1
?????increment by 1
?????nocache;
?
? ? ?第三,創(chuàng)建觸發(fā)器將序列中的值賦給插入employee表的行
? ? ?create or replace tirgger insert_employee_autoinc
? ? ?before insert ?on employee
? ? ?for each row
? ? ? ? ? begin
? ? ? ? ? ? ? ?select employ_autoinc.nextval into :new.Id from dual;
? ? ? ? ? end insert_employee_autoinc
?
? ? ?最后測(cè)試一下我們的成果
? ? ?insert into employee(DeptNo,EmpNo,Ename,job,sal,hiredate) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? values(520,5201002,'James zhou','PD',6000,to_date('2012-10-22','yyyy-mm-dd'));
?
? ? ?select * from employee;
? ? ?
? ? oracle在創(chuàng)建表時(shí)和其他的數(shù)據(jù)庫(kù)有點(diǎn)不一樣,如SQL SERVER可以在int類型的字段后加上
identity(1,1)
,該字段就會(huì)從1開(kāi)始,按照+1的方式自增,將這個(gè)字段設(shè)置為主鍵,有利于我們進(jìn)行數(shù)據(jù)的插入操作。MySql中可以使用“auto_increment”即可。但是oracle有點(diǎn)麻煩,需要使用序列和觸發(fā)器達(dá)到目的。
?????? DeptNo number,
?????? EmpNo number,
?????? Ename varchar2(16),
?????? Job varchar2(32),
?????? Sal float,
?????? HireDate date,
?????? constraint pk_employee primary key(EmpNo)
? ? ? ? );
?????maxvalue 9999999999999999999999999999
?????start with 1
?????increment by 1
?????nocache;
? ? ?首先我們創(chuàng)建一個(gè)員工表。
? ? ?create table employee(
?????? Id int ,
?????? DeptNo number,
?????? EmpNo number,
?????? Ename varchar2(16),
?????? Job varchar2(32),
?????? Sal float,
?????? HireDate date,
?????? constraint pk_employee primary key(EmpNo)
? ? ? ? );
?
? ? ?第二,創(chuàng)建員工表自動(dòng)增長(zhǎng)序列
? ? ?create sequence employ_autoinc
?????minvalue 1
?????maxvalue 9999999999999999999999999999
?????start with 1
?????increment by 1
?????nocache;
?
? ? ?第三,創(chuàng)建觸發(fā)器將序列中的值賦給插入employee表的行
? ? ?create or replace tirgger insert_employee_autoinc
? ? ?before insert ?on employee
? ? ?for each row
? ? ? ? ? begin
? ? ? ? ? ? ? ?select employ_autoinc.nextval into :new.Id from dual;
? ? ? ? ? end insert_employee_autoinc
?
? ? ?最后測(cè)試一下我們的成果
? ? ?insert into employee(DeptNo,EmpNo,Ename,job,sal,hiredate) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? values(520,5201002,'James zhou','PD',6000,to_date('2012-10-22','yyyy-mm-dd'));
?
? ? ?select * from employee;
? ? ?

更多文章、技術(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ì)您有幫助就好】元
