MySQL таблицы не отражает новые изменения

0

Я создал 4 таблицы, используя командную строку в базе данных 'college2':

mysql> SHOW TABLES;
+--------------------+
| Tables_in_college2 |
+--------------------+
| course             |
| enrolment          |
| enrolment_status   |
| student            |
+--------------------+
4 rows in set (0.00 sec)

Таблица enrolment_status подсчитывает количество зарегистрированных учащихся в каждом курсе, начиная с enrolment в таблице и создается с использованием следующей командной строки:

CREATE TABLE enrolment_status SELECT code, count(id) FROM enrolment
GROUP BY code;

Когда я вставляю новую запись в таблицу enrolment, я ожидаю увидеть соответствующее изменение в таблице enrolment_status, но таблица enrolment_status остается неизменной, не отражает вновь вставленную запись.

Как мне исправить это?

Теги:
count
command-line
create-table

1 ответ

2
Лучший ответ

Использование CREATE TABLE с другой таблицей в качестве источника данных предоставляет целевой таблице однократный снимок данных в исходной таблице. Следовательно, последующие вставки в enrolment не отразятся в enrolment_status. Самое близкое к тому, что вы имеете в виду, - это создать представление поверх таблицы enrolment:

CREATE VIEW enrolment_view AS
SELECT code, COUNT(id)
FROM enrolment
GROUP BY code;

Представление enrolment_view будет отражать изменения в базовой таблице enrolment, включая вновь вставленные записи. Но было бы невозможно вставить записи непосредственно в это представление.

  • 0
    Тим, это прекрасно сработало, как ты сказал. Большое спасибо за помощь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню