create table test
(
id raw(16) default sys_guid() primary key,
filler varchar2(100)
)
这样就能生成唯一的主键id了,插入数据时不用插入id列。
SQL> create table test
2 (
3 id raw(16) default sys_guid() primary key,
4 filler varchar2(100)
5 )
6 ;
Table created
SQL> insert into test (filler) values('332');
1 row inserted
SQL> select * from test;
ID FILLER
-------------------------------- --------------------------------------------------------------------------------
F0CD55BE0ADE4622812921DFB13D5566 332
注意:Oracle导出建表语句不会导出触发器及自增索引
第一步:创建一张表
create table member( memberId number primary key, --主键、自增长 memberMail varchar2(20) not null, memberName varchar2(20) not null, memberPassword varchar2(20) );
第二步:建立自定义的sequence
CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 NOCACHE -- 不建缓冲区
查询sequence:
select * from user_sequences where sequence_name='emp_sequence';
第三步:建立触发器
create trigger mem_trig before insert on member for each row when (new.memberId is null) begin select emp_sequence.nextval into:new.memberId from dual; end;
第四步:测试语句
insert into member(memberMail,memberName,memberPassword) values('123@qq.com','jack','123456');