oracle中建立表主鍵id依據sequence自增長
SQL> create table sms_activity(
2 id number,
3 student_name varchar2(50),
4 begin_time varchar2(30),
5 end_time varchar2(30),
6 content varchar2(600)
7 );
表已建立。
SQL> commit;
提交完成。
SQL> alter table sms_activity addprimary key (id);
表已更改。
SQL> commit;
提交完成。
SQL> create sequence sms_activity_seq
2 minvalue 1
3 maxvalue 9999999999
4 increment by 1
5 cache 20
6 ;
序列已建立。
SQL> create or replace triggerbi_activity
2 before insert on sms_activity
3 for each row
4 begin
5 select sms_activity_seq.nextval into :NEW.ID from dual;
6 end;
7 /
觸發器已建立
SQL>desc sms_activity
名稱 是否為空? 型別
------------------------------------------------- ----------------------------
ID NOTNULL NUMBER
ACTIVITY_NAME VARCHAR2(50)
BEGIN_TIME VARCHAR2(30)
END_TIME VARCHAR2(30)
CONTENT VARCHAR2(600)
SQL> alter table sms_activity add(create_time varchar2(30),createby varchar2(20),modify_timevarchar2(30),modifyby varchar2(20));
表已更改。
SQL> commit;
建立序列
create sequence seq_createid
minvalue 1 maxvalue 999999
increment by 1
start with 1
cache 20
noorder cycle;
建立觸發器
create or replace trigger tr_createid
before insert on tb_user
for each row
when(new.id is null)
begin
select seq_createid.nextval into :new.id from dual;
end;