Mysql 表格没有反映新的变化

Mysql tables does not reflect new changes

我在 'college2' 数据库中使用命令行创建了 4 tables:

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

tableenrolment_status从tableenrolment统计每门课程的注册学生人数,使用以下命令行创建:

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

当我向 enrolment table 插入一条新记录时,我希望在 enrolment_status table 中看到相应的变化,但是 enrolment_status table保持不变,不反映新插入的记录。

我该如何纠正?

使用 CREATE TABLE 和另一个 table 作为数据源为目标 table 提供源 table 中数据的一次性快照。因此,在 enrolment 中进行后续插入不会反映在 enrolment_status 中。最接近您的想法的可能是在 enrolment table:

之上创建一个视图
CREATE VIEW enrolment_view AS
SELECT code, COUNT(id)
FROM enrolment
GROUP BY code;

视图 enrolment_view 将反映对基础 table enrolment 的更改,包括新插入的记录。但是,无法将记录直接插入此视图。