幽兰生空谷
--绝世独自开

Oracle数据库使用触发器实现字段自增

因为最近使用DBeaver管理oracle数据库,之前一直使用navicat搭配mysql使用,因DBeaver占用内存小,故选择它,因工作需要,故需要oracle。

ps:使用oracle实现主键自增,不同于mysql数据库简单。

这里使用的是 触发器 + 序列 的方式实现oralce数据库字段自增(自增字段为MSGID),步骤如下:

1.创建表

CREATE TABLE
        "C##DEMO"."ZX_CHL_CALLMSG_DOC"
        (
                "CREDATE" DATE DEFAULT SYSDATE NOT NULL ENABLE,
                "MSGID" NUMBER (10, 0) NOT NULL ENABLE,
                "COMEFROM" NUMBER (10, 0),
                "SOURCEID" NUMBER (10, 0),
                "CALLNO" VARCHAR2 (11) NOT NULL ENABLE,
                "CALLOWNER" VARCHAR2 (12),
                "MSG" VARCHAR2 (1000) NOT NULL ENABLE,
                "SENDERID" NUMBER (10, 0),
                "SENDDEPTID" NUMBER (10, 0),
                "SENDDATE" DATE,
                "INVALIDDATE" DATE,
                "INVALDMANID" NUMBER (10, 0),
                "USESTATUS" NUMBER (1, 0) DEFAULT 1,
                "MEMO" VARCHAR2 (250),
                "MSGLINES" NUMBER (1, 0),
                "SYNCFLAG" NUMBER (1, 0) DEFAULT 0,
                "SYNCDATE" DATE,
                "CHARGE" NUMBER (1, 0),
                "MESSAGEID" VARCHAR2 (50),
                CONSTRAINT "ZX_CHL_CALLMSG_PK" PRIMARY KEY ("MSGID")
        ) ;

2.创建序列

CREATE SEQUENCE "C##DEMO".ZX_CHL_CALLMSGSEQ 
INCREMENT BY 1 
MINVALUE 1 
MAXVALUE 99999999 
NOCYCLE 
NOCACHE 
NOORDER 

3.创建触发器

ps:要登录对应的用户名后,在创建,不然容易出错(ps:语法我不太会)

CREATE OR REPLACE TRIGGER ZX_CHL_CALLMSG_DOC_TRI 
before insert on zx_chl_callmsg_doc 
for each row Declare
-- local variables here
  Begin If :new.msgid Is Null Then
     Select zx_chl_callmsgseq.nextval Into :new.msgid From dual;
  End If;
End zx_chl_callmsg_doc_tri;

ps: 这种方式不需要在mapper.xml文件中写自增的字段名,如下:

此内容查看价格为2念币立即购买(VIP免费)
会员属于虚拟产品,一旦购买,不接受任何形式的退款。请根据需求理性消费。您的打赏、会员充值等,都可以给网站带来可持续发展的动力!目前只支持支付宝付款,给您带来不便请见谅!权限说明:
赞(2) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Oracle数据库使用触发器实现字段自增》
文章链接:https://www.itheibai.com/archives/1057
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。

评论 抢沙发

评论前必须登录!

 

养成“打赏”的好习惯,从我做起!

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册