更新后MySQL触发更新计数

时间:2019-01-23 16:48:43

标签: mysql triggers sql-update

假设我有一所学校,有许多不同年级的学生。 我有一张桌子,上面有所有学生的姓名,年级和分数,以免考试。

school如下所示:

school table

| Name       | Grade        | mark         |

| David      |            5 |          100 |

| John       |            3 |           90 |

| Anne       |            5 |           90 |

| Ivan       |            7 |          100 |

| Benjamin   |            7 |           90 |

| Diane      |            3 |           90 |

| Chris      |            2 |          100 |

我想要一个不同的表total,该表将具有计算的字段,其中包含每个年级和每个分数的计数。

total如下所示: total table

| Grade      | 90           | 100          |

| 2          |            0 |            1 |

| 3          |            2 |            0 |

| 5          |            0 |            1 |

| 7          |            1 |            1 |

因此,我对每个年级都有准确的总分(我知道可以在视图中建立分数,但是出于某种原因,我需要在单独的表格中得分)。

我要寻找的是一个触发器,如果​​更新分数,它将更新该年级的总表。

例如,如果我将John从3年级更新为100,则应该更新总表,如下所示:

UPDATE `total` 
SET `90` = (SELECT COUNT(*) FROM `school` WHERE `mark` = '90' AND `grade` = '3'), 
    `100` = (SELECT COUNT(*) FROM `school` WHERE `mark` = '100' AND `grade` = '3');

我找不到确切的语法:

0 个答案:

没有答案