oracle建表主键自增序列
2012-02-24 23:07
302 查看
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 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;
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 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创建主键生成序列
- ORACLE 批量插入 主键为自增序列 有几个字段数据从其他表导入的 有几个是固定的
- oracle(01): 创建表,主键自增长,注解,视图,序列
- Oracle序列和触发器实现表的主键自增
- Oracle创建序列作为自增主键
- Oracle序列和触发器实现表的主键自增
- oracle的序列使用,创建、表中调用、主键自动生成
- Oracle主键ID设置自动增长(序列+触发器)
- oracle使用序列和触发器使表主键自增长
- Oracle使用序列创建自增字段(主键自动增长)
- 在Oracle中插入一行,能不能自动产生一个唯一的序列数作为主键的值
- 琪露诺也能看懂的Oracle 主键值的序列自动生成与分配
- Oracle主键ID设置自动增长(序列+触发器)
- oracle主键自增长_序列及触发器实现
- oracle创建序列和触发器使主键ID自增
- oracle 建表 主键自增序列/////
- oracle使用序列填充代理主键自增!
- oracle 主键应用序列和触发器实现自动增长
- oracle序列详解和创建自增主键
- 在Oracle下基于序列和触发器实现主键自增长