Oracle创建新表(设置序列和触发器)
oracle建表语句
create table RETURN_HOME
(
ID NUMBER not null
constraint RETURN_HOME_PK
primary key,
USER_NUMBER VARCHAR2(32),
USER_NAME VARCHAR2(32),
APPLICATION_NUMBER VARCHAR2(256),
APPLICATION_DATE DATE,
APPLICATION_STATUS VARCHAR2(32),
LEAVE_CATEGORY VARCHAR2(128),
START_TIME DATE,
END_TIME DATE,
DIFF_DAYS NUMBER,
RETURN_HOME_DATE DATE,
RETURN_DATE DATE,
GENERAL_HOLIDAY NUMBER,
REPORT NUMBER,
LEGAL_HOLIDAY NUMBER,
LEAVE NUMBER,
COMPENSATORY_LEAVE NUMBER,
OTHERS NUMBER,
TOTAL NUMBER,
CREATE_TIME DATE,
EDIT_TIME DATE
);
创建表序列
CREATE SEQUENCE S_RETURN_HOME INCREMENT BY 1 MINVALUE 1 MAXVALUE 9999999999999 NOCYCLE CACHE 20 NOORDER;
创建表触发器
create trigger T_RETURN_HOME
before insert or update
on RETURN_HOME
for each row
declare
nextid number;
now_date date;
begin
select systimestamp into now_date from dual;
case
when inserting then
IF :new.id IS NULL or :new.id = 0 THEN
select S_RETURN_HOME.nextval into nextid from sys.dual;
:new.id := nextid;
end if;
:new.CREATE_TIME := now_date;
:new.EDIT_TIME := now_date;
when updating then
:new.EDIT_TIME := now_date;
end case;
end T_RETURN_HOME;
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 子宸blog
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果