基于另一个表格,使用触发器更新一张表格。

3
我想实现的是:
我有一个名为 "emprestimo" 的表格,其语法如下所示:
ID 用户 发布ID
1 1 1
2 2 1
3 2 2
我还有一个名为 "publicacao" 的表格,其内容如下所示:
ID 总借阅量
1 1
2 0
3 0
我想要做的是:当我为 ID 为 1 的条目插入一个 "emprestimo" 时,在 "publicacao" 表格中,"Emprestimos_total" 的值会从 "1" 变为 "2"。
我考虑使用像这样的触发器:
CREATE TRIGGER update_qtq_emp
  AFTER INSERT ON emprestimo
  FOR EACH ROW
BEGIN
  UPDATE publicacao
     SET Emprestimos_total = Emprestimos_total + 1
   where Id = NEW.Id;
END;

有没有办法在SQL中实现这个目标?

1个回答

0
我建议您创建一个视图,例如:
CREATE [OR REPLACE] VIEW v_publicacao 
AS
    SELECT id, COUNT(id) AS Emprestimos_total
    FROM emprestimo
    GROUP BY id

并且可以像查询表格一样随时从中查询。

如果由于某种原因禁用触发器,则可能存在错误结果,并且不需要在另一个已经可计算的源中存储数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接