데이터베이스의 보기를 업데이트할 수 있습니까?
데이터베이스에서 보기를 업데이트할 수 있습니까?만약 그렇다면, 어떻게?그렇지 않다면, 왜?
실제 대답은 "그것은 의존한다"입니다. 절대적인 것은 없습니다.
기본 기준은 데이터베이스 엔진의 의견에 따라 업데이트 가능한 뷰여야 합니다. 즉, 엔진이 업데이트할 행을 고유하게 식별할 수 있어야 하며, 두 번째는 필드를 업데이트할 수 있어야 합니다.보기에 계산된 필드가 있거나 부모/자녀 조인의 제품을 나타내는 경우 기본 대답은 "아니오"입니다.
하지만 속임수를 쓰는 것도 가능합니다...MS SQL Server 및 Oracle에서는 보기를 삽입하거나 업데이트하려고 할 때 트리거가 발생하여 서버가 스키마에서 쉽게 추론할 수 없는 지식을 가지고 있기 때문에 서버가 업데이트할 수 없는 것으로 만들 수 있습니다.
정답은 "그것은 의존한다"입니다.예를 들어 뷰의 집계 열은 업데이트할 수 없습니다.Oracle 보기의 경우 보기를 업데이트할 수 있는 경우와 업데이트할 수 없는 경우의 "업데이트 가능한 가입 보기"를 구글에서 검색할 수 있습니다.
예, 업데이트 가능하지만 항상 업데이트되는 것은 아닙니다.보기는 다음에서 업데이트할 수 있습니다.
보기가 작성된 테이블의 기본 키로 구성된 경우.
보기가 하나의 테이블만 기준으로 정의된 경우.
- 그룹 및 집계 함수를 사용하여 보기를 정의하지 않은 경우.
- 뷰의 정의에 별도의 절이 없는 경우.
- 업데이트해야 하는 보기가 다른 보기를 기반으로 하는 경우 나중에 업데이트할 수 있어야 합니다.
- 보기 정의에 하위 쿼리가 없는 경우.
PostgreSQL에는 업데이트 가능한 VIEW를 만드는 규칙이 있습니다.사용 방법을 보려면 설명서의 예제를 확인하십시오.
추신: 포스트그레SQL a VIEW는 선택 규칙인 규칙입니다.
이전에는 보기를 업데이트할 수 없었습니다.보기의 주요 목적은 데이터, 즉 이름을 보는 것입니다.저장된 쿼리라고도 할 수 있습니다.
오늘날 많은 데이터베이스 엔진이 보기 업데이트를 지원합니다.제한 사항에 묶여 있으며 일부 업데이트는 사실상 불가능합니다(예: 계산된 열, 그룹화 기준 등).
두 가지 접근 방식이 있습니다.
기본적으로 문제를 사용자에게 전가하는 트리거는 기본적으로 문제를 해결합니다.당신은 그 일을 하는 절차 코드를 작성합니다.물론 정확성, 일관성 등에 대한 보장은 없습니다.RDBMS 엔진의 관점에서 볼 때 보기에서 어떤 업데이트가 이루어졌든 기본 테이블에서 모든 항목을 삭제하는 트리거는 완벽하게 정상입니다.
훨씬 더 야심찬 것은 RDBMS 엔진이 독점적으로 처리하는 업데이트 보기입니다.여기서 많은 진전이 이루어지지 않고 있습니다. 부드럽게 말하자면, 좋은 아이디어가 있다면 박사 논문을 발표할 수 있습니다.실제로 좋아하는 RDBMS는 애드혹 보기 업데이트를 제한할 수 있습니다. 설명서를 확인하십시오.-)
예, 가능하지만 CREATE VIEW(Transact-SQL)를 확인하고 Updateable Views 섹션을 참조하십시오.
http://msdn.microsoft.com/en-us/library/ms187956.aspx
비고\업데이트 가능 보기 참조
예 - 구문이 테이블을 업데이트하는 것과 동일합니다.
Update MyView
Set Col1 = "Testing"
Where Col2 = 3
Go
업데이트할 수 있는 보기를 만드는 데는 몇 가지 조건이 있습니다.여기에서 확인할 수 있습니다.
편집:
MS SQL 기반으로 추가해야 합니다.
SQL Server에서 보기가 생성되면 참조된 테이블 열(열 이름 및 순서 위치)에 대한 메타데이터가 데이터베이스에 유지됩니다.참조된 기본 테이블에 대한 변경 사항(열 재정렬, 새 열 추가 등)은 뷰가 다음 중 하나일 때까지 뷰에 반영되지 않습니다.
•ALTER VIEW 문으로 변경 •DROP VIEW/CREATE VIEW 문으로 다시 작성 •시스템 저장 프로시저 sp_refreshview를 사용하여 새로 고침
일반적으로 보기는 업데이트하지 않습니다.조인 및 조건을 기준으로 다양한 테이블에서 데이터를 가져오는 보기가 작성됩니다.
보기는 호출할 때 원하는 데이터 세트를 제공하는 배치된 논리일 뿐입니다.
그러나 보기를 업데이트해야 하는 시나리오가 무엇인지 잘 모르겠습니다.
언급URL : https://stackoverflow.com/questions/3777918/is-a-view-in-the-database-updatable
'programing' 카테고리의 다른 글
MongoDB가 쿼리에 대해 인증되지 않음 - 코드 13 (0) | 2023.07.04 |
---|---|
문서 데이터베이스:중복 데이터, 참조 자료 등(특히 MongoDB) (0) | 2023.07.04 |
"__block" 키워드는 무엇을 의미합니까? (0) | 2023.06.29 |
C#을 사용하여 MongoDB 고유 키 만들기 (0) | 2023.06.29 |
오라클 SQL 개발자에서 "읽기 호출에서 하나를 뺀 값"을 어떻게 해결할 수 있습니까? (0) | 2023.06.29 |