INTOGP_MONTH_BILL (MONTH,
BONUS_VALUE,
CUR_WAY,
CUR_TIME,
STATUS,
IS_USE,
CREATE_TIME)VALUES(
CUR_MONTH,
CUR_BONUS_VALUE,‘包函数固化‘,
SYSDATE,‘固化中‘,1,
SYSDATE)
RETURNING IDINTO CUR_MONTH_BILL_ID; --CUR_MONTH_BILL_ID为变量,接收返回的ID值
关键语法:INSERT INTO TABLE VALUES(,) RETURNING ID INTO VAL
补充:此种情况,触发器的语句可能如下
CREATE OR REPLACE TRIGGERGPS.TR_EM_FILES
beforeinsert on"GPS"."EM_FILES"foreach rowbegin
select "GPS"."SQ_EM_FILES".nextval into :new."ID" fromdual;end;/
或
oralce12c,主键是通过default设置SEQUENCE下一个值
CREATE TABLEC##EM.GP_TARGET_TYPE
(
IDNUMBER(19) DEFAULT "C##EM"."ISEQ$$_124895".nextval NOT NULL, --DEFAULT默认值为seq的下个值
NAME NVARCHAR2(50) NOT NULL,
REMARK NVARCHAR2(200),
CREATE_TIME DATENOT NULL,
CREATE_UIDNUMBER(19),
DELETE_UIDNUMBER(19),
DELETE_TIME DATE,
IS_DELETENUMBER(1) NOT NULL,
UPDATE_TIME DATE,
UPDATE_UIDNUMBER(19)
)
2)如果主键ID的值由用户自主获得SEQUENCE的值,然后赋值,实现方式可以如下:
SELECT YOUR_SEQ.NEXTVAL INTO MID_ID FROM DUAL; --MID_ID为变量
INSERT INTO TABLE(ID) VALUES(MID_ID);
补充:此种情况,可以有触发器,语句可能如下:
CREATE OR REPLACE TRIGGER C##WL.TR_BULLETIN BEFORE INSERT
ONC##WL.WL_BULLETINFOREACH ROWWHEN(
NEW.IDIS NULL OR NEW.ID = 0)BEGIN
SELECT WL_BULLETIN_SEQ.NEXTVAL INTO :NEW.ID FROMDUAL;END;/
当前插入的主键ID为空值或0时,获取对应SEQUENCE 的NEXTVAL值来赋值主键ID
Oracle 在函数或存储过程中执行一条插入语句并返回主键ID值
标签:sequence enc family varchar char end rom 自增 sele
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:http://www.cnblogs.com/senyier/p/7801575.html