Oracle数据库,让日期字段自动添加当前系统时间(相当于Mysql数据库的时间戳)

最近用了一下Oracle数据库,想让表中的create_time和update_time两个字段自动添加系统时间;网上找了很多都说需要添加触发器,但是试用了很多都不起作用(坑的水分太多)。测试了很多方法终于整理了一个添加触发器的方法(亲测管用)

 

对于创建时间create_time字段,只有新添数据的自动添加时间,所以很简单:                                                                                    只需要在表设计里面把create_time字段的类型改成DATE,同时在默认值里面填写sysdate 即可实现自动添加创建时间。

 

对于更新时间update_time字段就有点麻烦,不光新增的时候添加时间,在修改数据的时候也得更新当前时间,所以用触发器:        创建触发器的sql语句如下:                                                                                                                                                  (ABSAOC为数据库名,test123为触发器名(自己随便起,别重复),test_bbb为表名,update_time为更新时间字段)

CREATE TRIGGER "ABSAOC"."test123" BEFORE INSERT OR UPDATE ON 
"ABSAOC"."test_bbb" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW                                                         BEGIN 
:NEW."update_time" := systimestamp;                                                                                                                                                 END;status

创建好触发器后,需要查看触发器的状态status是不是启用状态(状态是ENABLED即可):

select trigger_name,status from all_triggers  ORDER BY  trigger_name ; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值