介绍 本篇文章主要介绍在oracle中如果创建自增长表,这里要用到序列。  createtabletb_student(idNUMBER(10)notnull,createtimeDATEnotnull,constraintPK_tb_studentprimarykey(id));commen"/>

Oracle 创建主键自增表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 创建主键自增表相关的知识,希望对你有一定的参考价值。

介绍

 本篇文章主要介绍在oracle中如果创建自增长表,这里要用到序列。

 

 

create table tb_student
(
   id                 NUMBER(10)           not null,
   createtime         DATE                 not null,
   constraint PK_tb_student primary key (id)
);

comment on table "tb_student" is
\'学生\';

comment on column "tb_student"."id" is
\'主键id\';

comment on column "tb_student"."createtime" is
\'创建时间\';


--创建序列
create sequence seq_tb_student
minvalue 1
nomaxvalue
start with 1
increment by 1
nocycle   --一直累加,不循环
--nocache;  --不缓存
cache 10; --缓存10条

--创建触发器,如果insert语句不指定ID自动插入增长值
CREATE OR REPLACE TRIGGER tr_tb_student 
BEFORE INSERT ON tb_student FOR EACH ROW WHEN (new.id is null)
begin
select seq_tb_student.nextval into:new.id from dual;
end;

 

 注意:触发器是非必须的,可以从业务上严格要求指定插入值。

总结

 注意oracle限制对象名的字符长度不能超过30个字符,所以表名要控制在一定的长度否则后面创建序列可能会超过限制,建议表名控制在27个字符以下。

 

 

备注:

    作者:pursuer.chen

    博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

《欢迎交流讨论》

以上是关于Oracle 创建主键自增表的主要内容,如果未能解决你的问题,请参考以下文章

使用jpa在postgresql数据库中创建主键自增表

postgresql 主键自增,以及mybaits 逆向生成

Java程序连接Oracle数据库时怎么设置主键自增

Oracle 学习----:创建表(主键自增)

Oracle 触发器实现主键自增

Oracle建表时主键自增