2023年11月26日发(作者:)

Oracle表添加时间字段(执⾏insertupdate时,时间字段⾃动插⼊当前系统时

间)

Oracle表添加时间字段

在执⾏update、insert操作时,时间字段会⾃动更新时间,插⼊当前系统时间

STUDY表结构如下:

SQL> desc study;

Name Null? Type

------- ----------------- -------- ----------------------------

STUID NOT NULL NUMBER(10)

STUNAME NOT NULL VARCHAR2(20)

SQL>

1、添加时间字段(假设该表在创建时没有加⼊时间字段)

#(modify)

向表孔添加列修改列使⽤

ALTER TABLE table_name ADD( column datatype [DEFAULT EXPR][,column datatype...]);

SQL> alter table study add(time date);

#

删除列

SQL> alter table study drop column time;

验证表结构:

SQL> desc study;

Name Null? Type

------------------------- -------- ----------------------------

STUID NOT NULL NUMBER(10)

STUNAME NOT NULL VARCHAR2(20)

TIME DATE

SQL>

2、创建触发器(Trigger)

#updateinserttime

在执⾏操作时会⾃动向列插⼊当前数据库时间

SQL> CREATE TRIGGER study_trigger

before INSERT OR UPDATE ON STUDY

FOR EACH ROW

BEGIN

IF INSERTING THEN

:NEW.TIME := SYSDATE;

ELSIF UPDATING then

:NEW.TIME := SYSDATE;

END IF;

END;

/

Trigger created.

SQL>

3、插⼊数据验证

#

随便插⼊⼀条数据

SQL> insert into study values(5,'xiaotian','');

1 row created.

#time

查询验证,列已经⾃动插⼊系统时间

SQL> select * from study;

STUID STUNAME TIME

---------- ------------ -------------------

1 xiaohong

2 xiaoming

3 xiaoliang

4 xiaozhu

5 xiaotian 2021-03-17 14:13:07

#

提交事务

SQL> commit;

Commit complete.

SQL>

update结果这⾥就不测试了,⾄此结束,谢谢。