您的位置:首页 > 数据库 > Oracle

oracle中创建表主键id依据sequence自增长

2017-01-06 14:47 441 查看
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息