SQL> create table sms_activity(
2 id number,
3 activity_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 add primary 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 trigger bi_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 NOT NULL 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_time varchar2(30),modifyby varchar2(20));
表已更改。
SQL> commit;
====================================================
Oracle创建表和主键自增
create table tuser(
id number(11) not null,
name varchar2(20) not null,
password varchar2(20),
birthday date,
constraint tuser_pk primary key (id)
);
创建序列:
create sequence increase_seq increment by 1 start with 1 nomaxvalue nocycle cache 10;
创建trigger:
create or replace trigger tuser_trigger
before insert on tuser for each row
begin
select increase_seq.nextval into :new.id from dual;
end;
/
根据使用的工具,可能需要增加“/”来执行PL/SQL块。
测试:
insert into tuser(name,password,birthday) values('wujay','123456',null);
commit;
select * from tuser;
ID NAME PASSWORD BIRTHDAY
---------- -------------------- -------------------- --------------
1 wujay 123456
修改表:
alter table tuser rename column id to pk_tuser;