ORCALE触发器使用生成自增长的编号('zd20183290001')

本人是个新手,大佬们多多关照!

目前在学习oracle数据库,现在简单的使用触发器来生成字符串自增长编号('zd20183290001');

-- 1.   首先创建一个用户表:TEST_USER;字段:ID,NAME

DROP TABLE TEST_USER;
CREATE TABLE test_user (
ID VARCHAR (20) PRIMARY KEY,
NAME VARCHAR (20)
);

-- 2.创建序列
-- DROP SEQUENCE seq_user1;
CREATE SEQUENCE seq_user1 INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
NOCACHE;-- 不建缓冲区;


-- 3.创建触发器

CREATE OR REPLACE TRIGGER tt_seq BEFORE INSERT ON TEST_USER FOR EACH ROW

BEGIN
SELECT
'ZD' || TO_CHAR (SYSDATE, 'YYYYMM') || TRIM (
TO_CHAR (seq_user1.nextval, '000')
) INTO:NEW.ID
FROM dual;END;

--4.插入数据
insert into TEST_USER(name) values('aaa');
insert into TEST_USER(name) values('aaa');
insert into TEST_USER(name) values('aaa');
insert into TEST_USER(name) values('aaa');
insert into TEST_USER(name) values('aaa');

commit


--5.结果

ORCALE触发器使用生成自增长的编号('zd20183290001')