前言:oracle不像mysql一樣,支援主鍵自增。oracle需要序列(sequence)來間接實現主鍵自增。
建立表:(例如建立使用者表)
create table t_user(
id number(10) not null, //主鍵id
username varchar2(40) not null, //使用者名稱
password varchar2(40) not null, //密碼
primary key(id), //標記主鍵是哪個
foreign key(role_id) references t_role(role_id) //設定外來鍵role_id,關聯表t_role
);建立序列:(例如使用者序列)
create sequence seq_user //序列名為seq_user
start with 1 //以該值開始自增或自減
increment by 1 //每次自增1
maxvalue //最大值;設定nomaxvalue表示無最大值
minvalue //最小值;設定nominvalue表示無最小值
cycle or nocycle //設定到最大值後是否迴圈;
cache 20 //指定可以快取 20 個值在記憶體裡;如果設定不快取序列,則寫nocache
order or noorder //設定是否按照請求的順序產生序列
建立觸發器:(例如使用者觸發器)
create trigger trigger_user //出發器名trigger_user
before insert on t_user for each row when (new.id is null) --只有在id為空時,啟動該觸發器生成id號
begin
select seq_user.nextval into:new.id from dual;
end;
ORACLE實現主鍵自增
建序列 create sequence sq public minvalue 1 maxvalue 999999 start with 1 increment by 1 建觸發器 sql create or replace trigger exam tri 2 before insert on t ...
oracle實現主鍵自增
由於oracle設定主鍵是不會自動增加的,所以必須用 序列 和 觸發器 來完成主鍵的遞增 1 建立資料表 create table t test id number 10 primary key,建立主鍵 uname varchar2 20 age number 0,10 varchar2 20 a...
Oracle實現主鍵自增
建表mshow sysuser info create table mshow sysuser info id int primary key,role id int not null,login name varchar2 50 not null,user name varchar2 20 use...