的组合,我使用的是Oracle SQL CREATE SEQUENCE名为MY_ID的字段的表。SQL根据日期和反
MY_ID需要在插入记录时使用顺序自动生成。
该序列的规则是字符串前缀,计数器每天增加1并在午夜复位以及日期的组合。
例如: 于9月10日,我们插入2条记录,然后添加my_id应该是:
PREFIX_01_20170910
PREFIX_02_20170910
于9月11日:
PREFIX_01_20170911
PREFIX_02_20170911
PREFIX_03_20170911
于9月12日,整个表看起来像这样
PREFIX_01_20170910
PREFIX_02_20170910
PREFIX_01_20170911
PREFIX_02_20170911
PREFIX_03_20170911
PREFIX_01_20170912
到目前为止,我所能做的所有序列都是1递增,无论日期:
CREATE SEQUENCE SEQ_MY_TABLE INCREMENT BY 1 MAXVALUE 9999999999999999999999999999 MINVALUE 1 NOCACHE;
和触发:
create or replace TRIGGER MY_TABLE_TRG
BEFORE INSERT ON MY_TABLE
FOR EACH ROW
BEGIN
<<COLUMN_SEQUENCES>>
BEGIN
IF INSERTING AND :NEW.MY_ID IS NULL THEN
SELECT SEQ_MY_TABLE .NEXTVAL INTO :NEW.MY_ID FROM SYS.DUAL;
END IF;
END COLUMN_SEQUENCES;
END;
谢谢!
鲍勃感谢您的建议。然而在这种情况下,每年只会插入<= 20条记录,我认为它应该没问题。 –