oracle如何设置主键自增

作者:国际小甜 | 创建时间: 2023-04-09
oracle不像mysql,没有自带主键自增的功能,需要自己添加序列的方式来实现,下面就介绍下如何设置oracle的主键自增...
oracle如何设置主键自增

操作方法

首先创建一个用来演示测试的用户表 create table tb_user ( id                 NUMBER(10)           not null, createtime         DATE                 not null, constraint PK_tb_user primary key (id) ); 创建表可以直接写sql语句,也可以使用PLSQL Developer工具的图形化界面来创建

如果使用图像化界面,则如下图界面上直接点击加号添加字段,设置名称类型等信息,也很方便

在给各个字段添加上注释说明,添加注释是一个好的习惯 comment on table "tb_user" is '用户表'; comment on column "tb_user"."id" is '主键id'; comment on column "tb_user"."createtime" is '创建时间'; 图像界面上在添加字段的时候,可以直接写上每个字段的注释

--创建序列 create sequence seq_tb_user minvalue 1 nomaxvalue start with 1 increment by 1 nocycle   --一直累加,不循环 --nocache;  --不缓存 cache 10; --缓存10条 创建序列同样可以使用工具图形化创建,打开方式如下图所示

打开之后,设置好最大、最小、开始位置、每次递增多少、是否循环、是否缓存等

--创建触发器,如果insert语句没有传ID自动递增 CREATE OR REPLACE TRIGGER tr_tb_user BEFORE INSERT ON tb_user FOR EACH ROW WHEN (new.id is null) begin select seq_tb_user.nextval into:new.id from dual; end; 创建触发器同样可以使用工具图形化创建,打开方式如下图所示

打开触发器模版向导窗口之后,填写好名称,触发方式,事件,表名

温馨提示

如果在应用的业务层对插入值进行了序列设置,则可以不用添加触发器
点击展开全文

更多推荐