例如,现在我有三个查询。一个表的insert和select语句:
INSERT INTO Table_A (col_1)
VALUES (val_1)
和
SELECT SUM(col_1)
FROM Table_A
WHERE Table_A_ID = id
每次插入后,我需要重新计算总和并更新Table_B的列。
该总和存储在变量'sum'中,(我正在使用dapper),然后传递给另一个函数以及更新Table_B列的'id'变量。
UPDATE Table_B
SET col_1 = @sum
WHERE Table_B_ID = @id
我想结合最后两个查询来有效地实现以下目标:
UPDATE Table_B
SET col_1 = (SELECT Sum(col_1) FROM Table_A WHERE Table_A_ID = id)
WHERE Table_B_ID = id
这可能吗?
答案 0 :(得分:1)
是否真的有必要存储计算列?
如果是,您可以考虑在表A上创建一个触发器,每次在“A”中插入记录时执行该触发器。然后触发器可以用计算的总和更新table_B。
(请记住,当删除或更新表A中的记录时,您必须修改表B中的计算总和。因此触发器应该是AFTER INSERT,UPDATE,DELETE触发器。)
答案 1 :(得分:1)
这是你在找什么?
setTimeout(function() { anotherFunction(); }, 3);