因为最近使用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文件中写自增的字段名,如下:
评论前必须登录!
注册