前言
达梦数据库(DM7)目前支持的列属性并不多,比如并不支持直接创建自动记录更新时间的列属性,但是这个功能在实际数据库使用中又比较频繁,本文简单记录如何通过时间触发器设置某列自动记录更新时间,即所谓的update_time列。另外,实际使用中可能会有这种排序需求:永远显示最新的数据,及更新时间的排序,如果某条数据仅创建未更新过,则对比其创建时间,也就是创建时间和更新时间两列数据的对比结果,本文也将记录对应的sql语句。
一 创建数据库表,设置并启动触发器
/*
@创建测试所用数据库表
@id为自增列,数据类型为int,设置不为空,方可设置为自增列
@CREATE_TIME为创建时间,默认为表的创建时间
@UPDATE_TIME为修改时间,当表中数据被更新时,触发器启动,自动记录更新时间
*/
CREATE TABLE "SYSDBA"."TABLE_TEST"
(
"NAME" VARCHAR(50),
"ID" INT IDENTITY(1, 1) NOT NULL,
"CREATE_TIME" TIMESTAMP(0) DEFAULT SYSDATE NOT NULL,
"UPDATE_TIME" TIMESTAMP(0)) STORAGE(ON "MAIN", CLUSTERBTR) ;
/*
@触发器设置,功能:自动记录更新时间
@触发器名为UPDATE_TIMER
@触发器执行范围为每行生效
*/
CREATE OR REPLACE TRIGGER UPDATE_TIMER
BEFORE UPDATE ON "SYSDBA"."TABLE_TEST" FOR EACH ROW
BEGIN
NEW.UPDATE_TIME:=SYSDATE;
END;
/*启动触发器*/
ALTER TRIGGER UPDATE_TIMER ENABLE;
二 测试触发器功能
1 添加数据,记录创建时间
2 更新数据,测试更新时间
3 查询最新数文章来源:https://www.toymoban.com/news/detail-625320.html
select * from "SYSDBA"."TABLE_TEST" order by isnull(UPDATE_TIME,CREATE_TIME) desc;
文章来源地址https://www.toymoban.com/news/detail-625320.html
到了这里,关于达梦数据库(DM7)自动更新时间触发器及时间排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!