2017-05-10 11 views
0

저는 일반적으로 teradata와 SQL에 익숙하지 않습니다.원본으로 사용하는 테이블에서 DDL을 변경하면 뷰가 자동으로 업데이트됩니까?

id, name, role 열이있는 SCHOOL 테이블이 있다고 가정 해 보겠습니다. 그리고이 테이블의 상단에는 다음과 같은보기가 있습니다.

교사를 선택 * 바꾸기 학교에서 어디에서 선택 하시겠습니까? * 교사가 'ROLE ='TEACHER ';

이제 SCHOOL에 새 열을 추가합니다 (예 : subject_name). 교사가이 새 열을 선택하기 시작하거나 동적 인 경우 CREATE OR REPLACE VIEW 문을 다시 실행해야하며 다음에 호출 할 때 열이 자동으로 새 열을 선택하게됩니다.

+0

시도해보고 어떤 일이 발생하는지 확인하십시오. –

+0

테이블 값 함수를 사용하는 경우 (테라 데이타가이 값을 가지고 있는지 확실하지 않은 경우) – maSTAShuFu

+1

'CREATE OR REPLACE'가 Teradata에서 유효하지 않은 경우 새로 고치거나 다시 컴파일하십시오. 오라클 구문입니다. 표준 SQL에 따르면보기가 작성되면보기가 완료되므로 새 열은 자동으로 포함되지 않습니다. 'SHOW QUALIFIED SELECT * FROM TEACHER;에 의해 반환 된 내부 소스 코드보기 – dnoeth

답변

0

그렇지 않습니다. "select * from"을 다시 컴파일해야합니다.

+0

확인해 주셔서 감사합니다. –

0

테이블을 변경할 때마다보기를 바꿔야합니다.
뷰 정의에서 "select *"는 "뷰를 만들 때 테이블의 모든 열을 선택합니다"를 의미합니다. 이후에 테이블을 변경하면 (열을 추가하거나 제거하여)보기가 불일치 할 수 있습니다. 그 중 일부는보기에서 "*"를 사용하여 모든 열의 이름을 지정하는 것을 선호합니다.