gpt4 book ai didi

mysql - 如何创建 gpa 或 cgpa 触发器?

转载 作者:行者123 更新时间:2023-11-29 20:04:28 25 4
gpt4 key购买 nike

您好,我正在开发一个大学成绩系统,其中有多个学期。我有一个这样的表结构:-

+------+------+------+------+------+------+------+------+------+
| sem1 | sem2 | sem3 | sem4 | sem5 | sem6 | sem7 | sem8 | cgpa |
+------+------+------+------+------+------+------+------+------+
| | | | | | | | | |
+------+------+------+------+------+------+------+------+------+

我想设计一个触发器,以便 cgpa 列根据学期中的值自动计算。当仅在 sem 1 中存在值时,则 cgpa=sem1 并且如果 sem1 和 sem2 的值不为空,则 cgpa = (sem1 +sem2)/2 如果 sem1、sem2 和 sem3 的值不为空,则 cgpa= (sem1 + sem2 + sem3)/3,其他条件依此类推。

我对触发器的概念很陌生,无法想出正确的方法。下面给出的代码是我尝试过的,我知道这不起作用:-

CREATE DEFINER=`root`@`localhost` TRIGGER `ABC` BEFORE UPDATE ON `cgpa` FOR EACH ROW BEGIN
SET
NEW.cgpa = NEW.sem1;

SET
NEW.cgpa = (NEW.sem1 + NEW.sem2) / 2;

SET
NEW.cgpa = (NEW.sem1 + NEW.sem2 + NEW.sem3) / 3;

SET
NEW.cgpa = (NEW.sem1 + NEW.sem2 + NEW.sem3 + NEW.sem4) / 4;

SET
NEW.cgpa = (NEW.sem1 + NEW.sem2 + NEW.sem3 + NEW.sem4 + NEW.sem5) / 5;

SET
NEW.cgpa = (NEW.sem1 + NEW.sem2 + NEW.sem3 + NEW.sem4 + NEW.sem5 + NEW.sem6) / 6;

SET
NEW.cgpa = (NEW.sem1 + NEW.sem2 + NEW.sem3 + NEW.sem4 + NEW.sem5 + NEW.sem6 + NEW.sem7) / 7;

SET
NEW.cgpa = (NEW.sem1 + NEW.sem2 + NEW.sem3 + NEW.sem4 + NEW.sem5 + NEW.sem6 + NEW.sem7 + NEW.sem8) / 8;

END

我对触发器很陌生,所以我无法想出一种方法来做到这一点。如果有人能帮助我做到这一点,我将非常感激。非常感谢任何帮助。

最佳答案

尝试将 sem1,sem2,sem3,sem4,sem5 值初始化为 0,并在所有情况下求和

关于mysql - 如何创建 gpa 或 cgpa 触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40401914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com