如何让表中的字符内容自动加1.
比如,表AA
字段为id(number),caption(varchar2),code(varchar2),
id是通过HIBERNATE,在添加一条记录时,会自增长
我现在希望的是code也能通过触发器自增长.比如上一个数据是:0001;在插入一条数据时,这条记录的CODE就是0002
比如,表AA
字段为id(number),caption(varchar2),code(varchar2),
id是通过HIBERNATE,在添加一条记录时,会自增长
我现在希望的是code也能通过触发器自增长.比如上一个数据是:0001;在插入一条数据时,这条记录的CODE就是0002
CREATE SEQUENCE seq_AA2 START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;CREATE OR REPLACE TRIGGER tri_AA1 BEFORE INSERT ON AA
FOR EACH ROW
BEGIN
SELECT seq_AA1.NEXTVAL INTO :NEW.id FROM dual;
END;
/CREATE OR REPLACE TRIGGER tri_AA2 BEFORE INSERT ON AA
FOR EACH ROW
BEGIN
SELECT TO_CHAR(seq_AA2.NEXTVAL,'0000') INTO :NEW.code FROM dual;
END;
/
12:38:12 scott@TUNGKONG> select * from aa; ID CAPTION CODE
---------- ---------- ----------
1 TEST 0001已用时间: 00: 00: 00.00
12:38:16 scott@TUNGKONG> INSERT INTO AA(caption) VALUES ('TEST2');已创建 1 行。已用时间: 00: 00: 00.00
12:38:20 scott@TUNGKONG> select * from aa; ID CAPTION CODE
---------- ---------- ----------
1 TEST 0001
2 TEST2 0002已用时间: 00: 00: 00.01
比如code的序列是seq_code
插入的时候用to_char(seq_code.nextval,'0000')