用Navicat向oracle数据库插入数据,如何实现id自增,updateTime自动获取系统当前事件

我在操作oracle数据库时,需要完成一个小的需求,就是将提供给我的csv文件, 其中的字段内容,对应导入到oracle表中。

该csv文件相对于表要缺少两个字段(id,updateTime)。我思路是:在测试库中新建一张表,恰巧是csv表中的几个字段,通过Navicat工具的“导入向导”功能,将csv文件内容倒进测试库的表中。

用Navicat向oracle数据库插入数据,如何实现id自增,updateTime自动获取系统当前事件

用Navicat向oracle数据库插入数据,如何实现id自增,updateTime自动获取系统当前事件

csv文件:

用Navicat向oracle数据库插入数据,如何实现id自增,updateTime自动获取系统当前事件

 

导入成功后,我可以拿到这张表的“数据结构和数据”,将拿到的sql文件利用Notepad++打开。截取其中的数据sql部分,进行字段填充完善,使其变为能直接插入到现网的insert into 语句。

插入前,还需要考虑下面的几点。

1、id自增,或者自动生成都可以

2、updateTime要是系统当前事件

围绕上面问题,我的思路是,从sql入手。id自增,可以创建一个触发器,使其让id随着序列的增加而增加(序列提前创好)。updateTime直接可以在插入语句中填充成sysdate就可以。

 

id自增的步骤:

1、创建自增序列

CREATE SEQUENCE RM_LINK_OLTTEST_SEQUENCE
INCREMENT BY 1 -----{自增量为1}
START WITH 1 ----------{从1开始自增}
NOMINVALUE
NOMAXVALUE
NOCYCLE

2、查看自增序列是否创建成功

select  RM_LINK_OLTTEST_SEQUENCE.NEXTVAL from dual;

 

3、创建触发器

CREATE OR REPLACE TRIGGER RM_LINK_OLTTEST_SEQ_TRIGGER
   BEFORE INSERT or UPDATE or DELETE ON RM_LINK_OLTTEST 
   FOR EACH ROW
 BEGIN
   SELECT RM_LINK_OLTTEST_SEQUENCE.NEXTVAL INTO :NEW.ID FROM DUAL;
END TR_FCBOOK;

4、插入一条样例数据

insert into RM_LINK_OLTTEST values(RM_LINK_OLTTEST_SEQUENCE.NEXTVAL,'张三','234','324','21','423','tres',sysdate);

 

测试成功插入该条数据,然后拿到完整sql,插入到正式库中的那张表中。

 

 

------------感谢看完,期待交流----------------