sql - PostgreSQL 创建触发器,它在每次插入或更新表时运行一个函数
问题描述
我在我的 postgres 数据库中定义了两个表scores
和。analyzed_avg_score
我也有一个我这样声明的功能:
CREATE FUNCTION updateAvgScore() RETURNS void AS $$
INSERT into analyzed_avg_score
(SELECT
user,
avg(score_value)
FROM
scores
group by user) on conflict do nothing;
$$ LANGUAGE SQL;
现在,我想要一个触发器或类似的东西,每次我在score
. 我还没有太多的 SQL 经验。那么,有人知道触发器应该是什么样子吗?
解决方案
CREATE TRIGGER SCORE_INSERT AFTER INSERT ON SCORE
FOR EACH ROW EXECUTE PROCEDURE updateAvgScore();
/*Have it return a trigger like this */
CREATE OR REPLACE FUNCTION updateAvgScore() RETURNS TRIGGER AS $example_table$
BEGIN
/*YOUR lOGIC HERE*/
END;
$example_table$ LANGUAGE plpgsql;
推荐阅读
- database - Jmeter脚本开发:IBM cloudant性能测试,最大请求/秒
- flask - flask_mail 似乎是在 pythonanywhere 中导入的,但是运行时 get error code: no module named
- javascript - 切换大小写自动缩进以启用 VSCode 上的折叠
- c++ - Cpp 在不需要时要求默认构造函数
- r - 覆盖 left_join dplyr 以更新数据
- java - 使用 JDBC 将数据插入数据库的问题
- nuget - Azure Pipelines NuGet.config 包无法还原
- python - Xgboost 与简单的时间序列数据框 Python
- javascript - Javascript 执行代码块
- r - 加载 RCurl 包失败