2017-12-12 42 views
0

새로운 변경 사항을 반영하지 않습니다MySQL의 테이블 내가 'college2'데이터베이스에 명령 줄을 사용하여 4 개 테이블을 만든

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

표를 enrolment_status 카운트 테이블 enrolment에서 각 과정에 등록한 학생의 수를, 다음과 같은 명령 줄을 사용하여 만들어집니다 : 내가 enrolment 테이블에 새 레코드를 삽입 할 때

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

, 난 enrolment_status 테이블에 상응하는 변화를 볼 것으로 예상,하지만 enrolment_status 테이블은 변경되지 않고 새로 삽입 된 레코드를 반영하지 않습니다.

어떻게 수정해야합니까?

답변

2

다른 테이블을 데이터 소스로 사용하면 대상 테이블에 소스 테이블에있는 데이터의 한 번 스냅 샷이 제공됩니다. 따라서 후속 삽입을 enrolment에 적용하면 enrolment_status에 반영되지 않습니다. 당신이 생각하고있는 것과 가장 가까운 것은 enrolment 테이블 위에 뷰를 생성 할 수 있습니다 :

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

enrolment_view은 새로 삽입 된 레코드를 포함하여 기본 테이블 enrolment에 변경 사항을 반영합니다. 그러나이보기에 레코드를 직접 삽입 할 수는 없습니다.

+0

Tim, 당신이 말한 것처럼 아름답게 작동했습니다. 도움 주셔서 대단히 감사합니다! –