2017-12-12 16 views
0

I 4 Tabellen erstellt haben, mithilfe von Befehlszeile in ‚college2‘ Datenbank:Mysql Tabellen spiegeln keine neuen Änderungen

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

der Tabelle enrolment_status zählt die Anzahl der eingeschriebenen Studenten in jedem Kurs, aus der Tabelle enrolment, und erstellt die folgende Befehlszeile verwenden:

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

Wenn ich einen neuen Datensatz enrolment Tabelle einfügen, erwarte ich eine entsprechende Änderung in enrolment_status Tabelle zu sehen, aber enrolment_status Tabelle bleibt unverändert, spiegelt den neu eingefügten Datensatz nicht wider.

Wie soll ich das korrigieren?

Antwort

2

Die Verwendung von CREATE TABLE mit einer anderen Tabelle als Datenquelle stellt der Zieltabelle eine einmalige Momentaufnahme der Daten in der Quelltabelle zur Verfügung. Folglich wird die nachfolgende Einfügung in enrolment nicht in enrolment_status widerspiegeln. Die nächste Sache, was Sie im Sinne haben könnte einen Blick auf der enrolment Tabelle erstellen sein:

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

Der Blick enrolment_view würde spiegeln Änderungen an die zugrunde liegende Tabelle enrolment, einschließlich neu eingefügte Datensätze. Es wäre jedoch nicht möglich, Datensätze direkt in diese Ansicht einzufügen.

+0

Tim, es hat wunderbar funktioniert, wie du gesagt hast. Vielen Dank für Ihre Hilfe! –

Verwandte Themen