有时,我们需要往一张表插入一条记录,同时返回主键ID值。
假定主键ID的值都是通过对应表的SEQUENCE来获得,然后进行ID赋值
这里有几种情况需要注意:
1)如果建表语句含有主键ID的触发器,通过触发器来实现主键ID的自增,实现方式如下:
INSERT INTO GP_MONTH_BILL ( MONTH, BONUS_VALUE, CUR_WAY, CUR_TIME, STATUS, IS_USE, CREATE_TIME) VALUES ( CUR_MONTH, CUR_BONUS_VALUE, '包函数固化', SYSDATE, '固化中', 1, SYSDATE) RETURNING ID INTO CUR_MONTH_BILL_ID; --CUR_MONTH_BILL_ID为变量,接收返回的ID值
复制
关键语法: INSERT INTO TABLE VALUES(,) RETURNING ID INTO VAL
补充:此种情况,触发器的语句可能如下
CREATE OR REPLACE TRIGGER GPS.TR_EM_FILES before insert on "GPS"."EM_FILES" for each row begin select "GPS"."SQ_EM_FILES".nextval into :new."ID" from dual; end; /
复制
或
oralce12c,主键是通过default设置SEQUENCE下一个值
CREATE TABLE C##EM.GP_TARGET_TYPE ( ID NUMBER(19) DEFAULT "C##EM"."ISEQ$$_124895".nextval NOT NULL, --DEFAULT默认值为seq的下个值 NAME NVARCHAR2(50) NOT NULL, REMARK NVARCHAR2(200), CREATE_TIME DATE NOT NULL, CREATE_UID NUMBER(19), DELETE_UID NUMBER(19), DELETE_TIME DATE, IS_DELETE NUMBER(1) NOT NULL, UPDATE_TIME DATE, UPDATE_UID NUMBER(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 ON C##WL.WL_BULLETIN FOR EACH ROW WHEN ( NEW.ID IS NULL OR NEW.ID = 0 ) BEGIN SELECT WL_BULLETIN_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL; END; /
复制
当前插入的主键ID为空值或0时,获取对应SEQUENCE 的NEXTVAL值来赋值主键ID
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
752次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
647次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
569次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
521次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
514次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
497次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
480次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
438次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
381次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
371次阅读
2025-05-05 19:28:36