postgresql - 创建触发器更新
问题描述
创建一个触发器,在将数据插入 builds_result 表时自动将 apps 表的 updated_time 字段的值更新为当前日期和时间。在 apps.updated_time 上给出错误
create trigger upd after insert
on builds_result
for each row
execute procedure new apps.updated_time = now();
解决方案
以下是如何设置触发器的简要概述。
首先创建触发函数:
CREATE OR REPLACE FUNCTION my_trigger_function()
RETURNS TRIGGER AS
$BODY$
BEGIN
UPDATE apps
SET updated_time = NOW();
RETURN NEW;
END
$BODY$
LANGUAGE plpgsql;
很简单,只更新表(注意它会更新所有记录,这只是因为你没有说应该更新哪个特定记录)并返回NEW
,这是插入的记录builds_result
。
然后在表上创建一个触发器builds_result
来执行这个函数:
CREATE TRIGGER upd
AFTER INSERT ON builds_result
FOR EACH ROW
EXECUTE PROCEDURE my_trigger_function();
就是这样。现在,每次将行插入builds_result
表时都会调用该触发器函数。
推荐阅读
- sql - 从不同的行检索组合作为输入 SQL
- angular - 保存后角显示小吃店
- hyperledger-fabric - hyperledger fabric - 如何删除对等点上的链码?
- string - 在 bash 脚本中用 $HOME 替换波浪号
- apache-spark - 想知道为什么空的内部迭代器会导致 mapPartitionsWithIndex 出现不可序列化的异常
- image - 如何在 Bokeh 中显示 TIFF 图像?
- python-3.x - Python:SSL 证书失败
- jquery - jQuery | 每 4 个结果用| 阿贾克斯
- python - 检查两个变量是否相等
- rest-assured - 通过 RESTAssured 对部分 JSON 使用 JSONAssert