Oracle数据库

本文介绍了如何在Oracle数据库中创建表并添加自增主键,通过序列和触发器实现主键自动递增。详细步骤包括创建表、设置主键、添加字段注释,以及创建序列和触发器的SQL语句,帮助理解Oracle数据库的序列参数和使用方法。
摘要由CSDN通过智能技术生成

Oracle数据库添加表,创建自增主键,添加注释


参考文章
https://blog.csdn.net/qq_40147275/article/details/85242496
https://blog.csdn.net/qq_40435659/article/details/116742478

sql语句

--创建表
CREATE TABLE code_window (
	rdn NUMBER ( 12 ) NOT NULL,
	hoscode VARCHAR ( 100 CHAR ) NULL,
	deptid VARCHAR ( 100 CHAR ) NULL,
	windowid VARCHAR ( 100 CHAR ) NULL,
	windowno VARCHAR ( 100 CHAR ) NULL,
	active VARCHAR ( 1 CHAR ) NULL,
	remark VARCHAR ( 400 CHAR ) NULL 
);

--添加主键
ALTER TABLE EMRHIS.code_window ADD PRIMARY KEY ( rdn );

--添加注释
COMMENT ON COLUMN code_window.rdn IS '主键';
COMMENT ON COLUMN code_window.hoscode IS '院区代码';
COMMENT ON COLUMN code_window.deptid IS '科室';
COMMENT ON COLUMN code_window.windowid IS '窗口代码';
COMMENT ON COLUMN code_window.windowno IS '窗口名称';
COMMENT ON COLUMN code_window.active IS '有效标志';
COMMENT ON COLUMN code_window.remark IS '备注';

利用序列,绑定触发器,实现主键自增


Oracle没有方法直接设置自增序列,但是可以通过序列和触发器实现。

序列是Oracle数据对象的一种,是以有序增加或者减少相同步长的一组序号,最主要的作用是用来生成数据表 的主键或者唯一键。序列不占用磁盘上的存储空间,是存活在内存上的对象。

--主键自增 ,1新建一个序列
CREATE SEQUENCE code_window_id1 INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E20 MINVALUE 1 NOCYCLE CACHE 20 NOORDER;

--主键自增 ,2创建一个触发器
CREATE 
	OR REPLACE TRIGGER code_window_id_trig before INSERT ON code_window FOR each ROW
BEGIN
	SELECT
		code_window_id.nextval INTO : new.rdn 
	FROM
		dual;--为Oracle的伪表
END;

Oracle序列参数

CREATE SEQUENCE SEQNAME    	      //序列名字         
INCREMENT BY 1                    //每次自增1, 也可写非0的任何整数,表示自增,或自减  
START WITH 1                       //以该值开始自增或自减  
MAXVALUE 1.0E20                   //最大值;设置NOMAXVALUE表示无最大值  
MINVALUE 1                           //最小值;设置NOMINVALUE表示无最大值  
CYCLE or NOCYCLE                  //设置到最大值后是否循环;  
CACHE 20                              //指定可以缓存 20 个值在内存里;如果设置不缓存序列,则写NOCACHE  
ORDER or NOORDER                  //设置是否按照请求的顺序产生序列  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值