oracle利用序列和触发器使字段自增

来源:互联网 发布:淘宝学生背包 编辑:程序博客网 时间:2024/05/17 08:23

create table NET_TRANDATE_CHECK
(
  trandate_no VARCHAR2(80),
  check_date  VARCHAR2(80)
)


--- 序列 701开始 每次自增1

CREATE SEQUENCE SQ_NET_TRANDATE_CHECK
INCREMENT BY 1
START WITH  701
NOCYCLE
;


--- 触发器
CREATE OR REPLACE TRIGGER TG_NET_TRANDATE_CHECK
BEFORE INSERT ON NET_TRANDATE_CHECK
FOR EACH ROW
BEGIN
SELECT SQ_NET_TRANDATE_CHECK.NEXTVAL INTO :NEW.TRANDATE_NO FROM SYS.DUAL;
END
;








---插入日期


INSERT INTO NET_TRANDATE_CHECK (CHECK_DATE)
SELECT TMP.DATE1 
FROM
(
SELECT TO_CHAR(TO_DATE(20160101,'YYYYMMDD')+LEVEL-1,'YYYYMMDD') AS DATE1,
TO_CHAR(TO_DATE(20160101,'YYYYMMDD')+LEVEL-1,'D')  AS WEEK 
FROM DUAL CONNECT BY LEVEL <366
) TMP
WHERE TMP.WEEK IN (1,7)  ORDER BY TMP.DATE1 ASC 
;
COMMIT
;


SELECT * FROM NET_TRANDATE_CHECK 
;
0 0
原创粉丝点击