首页 > 解决方案 > SQL:如何在 SQL 数据库中创建触发器以更新上次修改日期列

问题描述

当另一列被修改时,我需要使用日期戳更新数据库列。

例如,当数据库规格表原理图列Partstatusid更改时,需要更新标记。

我读过我需要创建一个触发器,但由于我的技能集完全是基于 SQL 报告的编写和查询,所以我不是 100% 的代码......

非常感谢。

标签: sqltriggers

解决方案


由于您没有提供 DBMS,我将提供两个选项,一个MS SQL Server用于Oracle. 如果您需要除此之外的其他内容,请指定您正在使用的 DBMS。

对于 MS SQL 服务器:

CREATE TRIGGER tiu_data_table
ON dbo.data_table
AFTER INSERT, UPDATE
AS
BEGIN
    IF UPDATE(Partstatusid)
    BEGIN
        UPDATE dbo.data_table
        SET last_updated = GETDATE()
        WHERE id_col IN (SELECT id_col FROM Inserted)
    END
END

对于甲骨文:

CREATE OR REPLACE TRIGGER tiu_data_table
    BEFORE INSERT OR UPDATE ON "schema_name".data_table FOR EACH ROW
DECLARE
BEGIN
    IF UPDATING('Partstatusid') THEN
        :NEW.last_updated := SYSDATE;
    END IF;
END;
/

推荐阅读