Oracle表添加时间字段(执行insert、update时,时间字段自动插入当前系统时间)
Oracle表添加时间字段在执行update、insert操作时,时间字段会自动更新时间STUDY表结构如下:SQL> desc study;NameNull?Type------- ----------------- -------- ----------------------------STUIDNOT NULL NUMBER(10)STUNAMENOT NULL VARCHAR2(2
·
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)
#在执行update或insert操作时会自动向time列插入当前数据库时间
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结果这里就不测试了,至此结束,谢谢。
更多推荐
已为社区贡献11条内容
所有评论(0)