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 //设置是否按照请求的顺序产生序列