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 ; 


版权声明:本文为weixin_42520502原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。