inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

장래쌤과 함께하는 쉽고 재미있는 SQL 이야기

뷰 변경 질문입니다.

해결된 질문

335

deeir

작성한 질문수 5

0

 

뷰 변경 수업을 들으면서 개인적인 궁금증이 들어 질문드립니다.

ALTER VIEW 혹은 CREATE OR REPLACE VIEW를 쓴다고 하셨습니다.

그런데 궁금증이 생겨 VIEW를 선언할 때(CREATE VIEW) 당시의 코드로 돌아가서, 해당 코드에서 수정한 다음 실행을 해보니 덮어쓰기가 안 되더라구요.

 

SQL 자체가 한번 CREATE한 쿼리는 덮어쓰기가 안 되는 거 같은데, 그럼 고쳐야할 부분이 많은 경우, 동일한 이름으로 새로운 CREATE가 안되니, 일반적으로 drop하고 다시 작성하나요??

sql mysql oracle dbms/rdbms mssql

답변 2

0

deeir

감사합니다!

drop할 경우 권한도 같이 삭제되신다고 설명해주셨는데, 그 부분을 깜빡했네요!

궁금증이 해결됐습니다! 감사합니다!

0

장래쌤

안녕하세요?

뷰를 처음에 만들 때는 CREATE VIEW 문으로 만듭니다. 이미 만들어진 뷰가 있다면 CREATE VIEW 문으로 같은 이름의 뷰를 만들 수 없습니다. 같은 이름의 뷰가 있을 때, 그 뷰의 쿼리문을 수정하고자 할 때는 ALTER VIEW 또는 CREATE OR REPLACE VIEW 문을 사용해야 합니다. DROP 하고 다시 CREATE 해도 되지만, 이렇게 되면 해당 뷰에 대해 설정되었던 권한도 제거되므로, 다시 권한 설정을 해야할 수도 있습니다. 그러므로 기존 뷰를 수정할 때는 ALTER VIEW 또는 CREATE OR REPLACE VIEW 문을 사용하기를 권고합니다.

혹시 다른 내용을 질문한 것이라면, 다시 한번 질문해 주세요. "VIEW를 선언할 때(CREATE VIEW) 당시의 코드로 돌아가서, 해당 코드에서 수정한 다음 실행을 해보니 덮어쓰기가 안 되더라구요." 이 부분이 명확히 이해갸 되지 않기 때문입니다. 질문 앞부분에 "ALTER VIEW 혹은 CREATE OR REPLACE VIEW를 쓴다고 하셨습니다." 이렇게 쓰신 것은 뷰를 변경하는 방법을 이미 알고 계신다 생각되기 때문입니다. 아뭏든 덮어쓰려면 ALTER VIEW 또는 CREATE OR REPLACE VIEW 문을 사용해야 합니다.

질문해 주셔서 감사합니다~

간단한 오타 제보입니다.

0

3

0

큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.

0

19

1

실제 FK제약조건을 설정하지 않는이유

0

19

1

create view

0

121

2

json 배열 파싱

0

185

2

insert into 구문

0

171

2

PDF 자료 문의

0

140

2

집계 연산자에 대한 질문

0

125

1

array_agg 배열 해제

0

196

2

null 수강 관련 문의

0

108

1

테이블 생성 후 조건 수정 방법

0

265

2

주차별 데이터에서 전 주 데이터 가져오기

0

180

1

여러 컬럼 중 null값이 아닌 값 가져오기

0

428

1

누적 백분위 구하기 질문

0

731

1

Join 질문

0

174

1

pdf 문의드립니다

1

188

1

regexp like 에 특정 특수기호 포함

1

356

1

컬럼 안 공백 문자열 제외

1

226

1

USING 조인 질문드립니다.

0

312

2

JOIN함수 질문입니다.

1

261

1

ELT 함수와 FIELD함수 질문입니다.

0

313

1

[질문] 3. '다양한 데이터 집계 _ 심각할 수 있는 집계 함수와 NULL값의 관계' 수업 내용 질문

0

224

1

대문자 질문입니다!

0

206

1

mysql 설치 오류로 학습 불가

0

234

1