서브쿼리 이용한 업데이트쿼리문 질문드려봅니다. 0 2 1,271

by DevAtom [SQL Query] [2014.12.19 13:24:29]


 안녕하세요 .

너무 기초적인 질문이 될수도 있지만 정보를 잘찾을수 없어 질문드려봅니다.

1. 테이블을 db암호화 해서 실제로는 view 에서 그대로 자료를 가져오고 있습니다.

view에도 테이블처럼 업데이트 쿼리문이 가능한가요? 아니면 원래 테이블 에 업데이트를 해주어야할까요?

기존테이블은 개인정보들이 암호화 되어 있고 뷰에는 그대로 보여지고 있습니다. 양방향 암호화된상황입니다.

 

2.  < a 뷰 >

cuserid juminnumber
  1111111111
  1111111111

 < b뷰>

userid juminno
korea 1111111111
korea 1111111111

이런 두개의 뷰가 있을때 b뷰에 주민등록번호와 a뷰의 주민등록번호를 조인시켜서

a뷰에 아이디 값을 업데이트 해주려면 어떻게 쿼리를 짜야할까요 서브쿼리를 이용해야 하는것 같은데요

사실 초보라서 1번질문처럼 뷰에 바로 업데이트를 해줘도 되는지 부터가 궁금합니다.

뷰에 업데이트가 불가능하다면 테이블을 기준으로 어떤식으로 쿼리를 짜면 될지 조언좀 부탁드립니다.

감사합니다 !

by 마농 [2014.12.19 14:10:49]


1. 뷰에 대한 업데이트 가능?
  - 암호화 솔루션의 구조에 따라 다르겠지요.
  - 아마 가능할 것 같습니다.


2. 업데이트 방법은?
  - 예시자료처럼 참조 뷰의 주민번호가 중복이 되면 안됩니다.

UPDATE a
   SET cuserid = (SELECT userid FROM b WHERE b.juminno = a.juminnumber)
 WHERE EXISTS (SELECT userid FROM b WHERE b.juminno = a.juminnumber)
;


3. 성능문제
  - 뷰 업데이트는 복호화를 거친 주민번호로 비교하므로 성능에 안좋습니다.
  - 암화화된 원본에 대한 직접처리가 가능하다면 직접 업데이트 방식이 좋습니다.


by DevAtom [2014.12.19 16:14:00]

마농 님 답변 너무 감사합니다 !

마농님 답변보니 더 열심히 전진해야겠습니다 다시한번 감사합니다

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입