Как мне постоянно обновлять один столбец? - PullRequest
0 голосов
/ 22 июня 2010

У меня есть преподавательский стол, и у каждого факультета есть определенное количество студентов. Таким образом, существует столбец «текущий», в котором указывается количество учащихся, находящихся в настоящее время под ними.

Однако я не хочу ++ и - каждый раз, когда я переключаю студента на другой факультет. Есть ли способ сохранить столбец обновленным с помощью запроса, использующего счетчик ()? Я считаю, что проще и точнее использовать запрос «выберите количество () от студента, где советник = 2», например, используя мой текущий столбец.

Ответы [ 2 ]

2 голосов
/ 22 июня 2010

Чтобы сделать это, используйте представление:

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

Очевидно, это нужно немного помассировать, чтобы соответствовать вашей схеме, но, по сути, настройте ваше представление так, чтобы все столбцы таблицы имелиИнформация факультета и добавьте в конце столбец, в котором указано нужное вам число.

1 голос
/ 22 июня 2010

Триггеры могут быть решением вашей проблемы?

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

Вы можете создать триггер, который автоматически обновляет вашу таблицу факультетов каждый раз, когда студент меняет факультет.

...