oracle中怎么创建字母加数字的序列?求大神解答
如:TB001,TB002,TB003......TB010......TB100......。后面的数字是有范围的。跪求答案...
如:TB001,TB002,TB003......TB010......TB100......。后面的数字是有范围的。跪求答案
展开
2013-04-15
展开全部
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;
/
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;
/
追问
要在hihernate框架的映射文件里面我应该怎样去映射这个主键?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询