如何保持一列不断更新?

时间:2010-06-22 18:41:40

标签: mysql self-updating

我有一个教师桌,每个教师都有一定数量的学生在他/她之下。所以有一个“当前”栏目,即目前在其中的学生人数。

然而,我不想要++和 - 每次我将学生转到另一个学院。有没有办法使用使用count()的查询来更新列?我发现使用来自student where = 2'的查询'select count()更简单,更准确,例如使用我当前的列。

2 个答案:

答案 0 :(得分:2)

为此,请使用视图:

CREATE VIEW studentCount AS 
SELECT 
    profID, 
    profName, 
    whatever, 
    (SELECT COUNT(*) 
     FROM studentTable 
     WHERE studentTable.profID=profTable.profID
    ) AS studentCount 
FROM profTable;

显然,这需要稍微按摩以适应您的架构,但实际上,设置您的视图以使该表的所有列都包含教师信息,并在末尾添加一列来计算您想要的数字

答案 1 :(得分:1)

触发器可以解决您的问题吗?

http://dev.mysql.com/doc/refman/5.5/en/triggers.html

您可以创建一个触发器,在每次学生转换教员时自动更新您的教师表。