2011-12-16 2 views
0

테이블에서 데이터를 업데이트하지 않는 VIEW를 만드는 방법은 무엇입니까? 예를 들어, VIEW와 TABLE에서만 행을 삭제하고 싶습니다. 설정된 VIEW에서는 삭제가 없어야합니다 ... 어떻게 수행할까요? 작동하지 않는이 같은 ...TABLE에서 업데이트하지 않고 로컬 작업을 위해 VIEW를 만드는 방법은 무엇입니까?

가 확인 오히려입니다
"CREATE OR REPLACE VIEW $prefix" 
. "Test_View AS SELECT * FROM Table1 WITH LOCAL CHECK OPTION"; 

... 도와주세요!

답변

2

VIEW 데이터를 업데이트/삭제할 수없는 곳에 고유 한 키 (예 : 효과가없는 고유 키)를 추가하십시오.

갱신 가능한 뷰에 MySQL Ref를 참조하십시오

것은 또한보기 nonupdatable을 특정 다른 구조가 있습니다.

집계 함수 (SUM(), 등 MIN(), MAX(), COUNT(), 등)

DISTINCT : 구체적으로, 뷰는 다음 중 하나가 포함되어있는 경우 업데이트 할 수 없습니다 뷰에서 행을 삭제

BY

그룹 ...

+0

설명서 읽기, 친애하는! – ezepovartur

+0

주 : 여러 테이블을 기반으로하는 뷰의 경우 데이터 추가 조작 (INSERT)이 유일한 실제 테이블에 추가되는 경우에만 작동합니다. 이러한보기에 대한 데이터 삭제 (DELETE)는 지원되지 않습니다. – ezepovartur

+0

경우에만 JOIN을 제거 할 수 없습니다 ... – ezepovartur

1

는 해당 테이블에서 삭제됩니다.

정말 원하지 않는 행을 제외하려면보기 정의를 변경해야합니다.

0

보기를 사용하고 싶지 않습니다. 삽입/업데이트 트리거에 의해 업데이트되는 두 번째 테이블이 필요합니다. 테이블이 영구적으로 존재하게하려면. 그렇지 않으면 INSERT..SELECT 문을 사용하여 각 쿼리에 대한 임시 테이블을 만듭니다.

관련 문제