mysql - 在 MySQL 中使用触发器更新 table1 后更新 table2

标签 mysql triggers

我正在尝试用mysql做一个触发器,在更新table1后更新table2,基本上操作的逻辑是这样的:

我有一个 table1,其中包含下一个字段:

id表1 id表2 单位

下一张表是这样的

id表2 总单位数

所以我需要用表2中具有相同ID的表1中所有单位的总和来更新表2的totalunits字段,例如:

假设 table1 具有以下值:

idtable1 | idtable2 | units
___________________________
1        |     1    |   3
2        |     1    |   2
3        |     2    |   2 

那么我的table2应该是

idtable2  | totalunits
________________________
1        |      5
2        |      2

我知道也许这非常简单,但我找不到任何解决方案,我已经创建了一个触发器,但它不起作用

 update `table2`,`table1` set totalunits= sum(table1.units) where table2.idtable2=table1.idtable2  

最佳答案

您可以使用以下查询:

UPDATE table2 t2 SET t2.`counts` = (SELECT SUM(t1 .`units`) FROM table1 t1 WHERE t1.`id2` = t2.`id2`);

关于mysql - 在 MySQL 中使用触发器更新 table1 后更新 table2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25885308/

相关文章:

c# - 在 C# 中运行更新查询后数据库没有变化

mysql - 计算位置变化

php - Codeigniter 事件记录帮助

sql - Oracle 11g 第 2 版 : Can a sub-query be used within a create table check constraint?

php - 复杂的MYSQL触发器

mysql。函数 ROUND 没有给出正确的值

php - 检查 php 是否两个短语包含相同的词

mysql - 使用触发器相互依赖的多个 sql 查询

javascript - 如何更改新 Firebase onUpdate 或 onWrite 触发器中的值?

T SQL-触发器而不是更新语句中不包含更新列