CREATE TABLE TEST_SEQNO (
SEQNO VARCHAR(10) PRIMARY KEY,
VALVARCHAR(20)
);
使用 序列号 + 触发器 组合来完成。
-- 序列号
CREATE SEQUENCE seq_testno
increment by 1 -- 每次递增1
start with 1 -- 从1开始
nomaxvalue -- 没有最大值
minvalue 1 -- 最小值=1
NOCYCLE;
-- 触发器.
CREATE OR REPLACE TRIGGER tr_test_seqno
BEFORE INSERT ON TEST_SEQNO
FOR EACH ROW
BEGIN
SELECT
'TB' || TRIM(TO_CHAR(seq_testno.nextval, '000')) INTO :new.SEQNO
FROM
dual;
END;
/
SELECT 'TB'||lpad(rownum,3,'0') FROM a