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;

你可能感兴趣的:(oracle)