(一)原因
Oracle數據庫是不能像Mysql呢樣在創建表的時候直接設置主鍵自增的
自己的項目前面是用的Mysql數據庫,現在要遷到Oracle上。插入數據時,報了違反唯一性約束,這就需要自己創建序列和觸發器進行主鍵的自增了。
(二)教程
1 創建一個測試表
create table tab_user( id number(11) primary key, username varchar(50), password varchar(50) );
2 創建一個序列
create sequence seq_user minvalue 1 maxvalue 99999999 start with 242 //start with 后面是數字(如果要建序列的這張表里沒有數據,就從1開始。如果有數據start with 為 最大的Id+1) increment by 1 nocache order;
3 創建一個觸發器
CREATE OR REPLACE TRIGGER trg_seq_user BEFORE INSERT ON tab_user //表名 FOR EACH ROW BEGIN SELECT seq_user.nextval INTO :new.id FROM dual; END;
4 向表插入數據
insert into tab_user(username,password) values('admin','admin'); insert into tab_user(username,password) values('fgz','fgz'); insert into tab_user(username.password) values('test','test'); COMMIT
5 查詢結果
希望能更加熟練的使用Oracle數據庫。