insert문 이해가 안됩니다. 1 3 858

by 김지호 [SQL Query] [2022.07.17 17:18:35]


insert into (select empno, ename, job, mgr, hiredate, sal, comm, deptno
from emp
where deptno = 30 with check option)
values (8000,'LEWIS', 'CLERK', 8000, sysdate, 100, 100, 30)

scott 계정에서 실습 내용인데 deptno = 30인 테이블에 값을 추가하는 걸로 이해가 되는데 그냥 select * from emp 해도 추가된 내용이 있습니다.

where문이 딱히 의미가 없어보이는데 무슨 역할을 하는 건가요?

by pajama [2022.07.17 23:16:36]

임시 뷰를 통해 insert 하는 것 같습니다..저도 저런 식으로 사용이 되는지는 처음 알았네요.

아래처럼 with check option에 위배되는 값(40) 입력을 시도하면 오류가 발생합니다.

 

SQL> insert into (select empno, ename, job, mgr, hiredate, sal, comm, deptno
from emp
  2    3  where deptno = 30 with check option)
  4  values (8000,'LEWIS', 'CLERK', 8000, sysdate, 100, 100, 40);
from emp
     *
ERROR at line 2:
ORA-01402: view WITH CHECK OPTION where-clause violation

 


by 우리집아찌 [2022.07.18 10:26:10]

저도 처음 보내요.. ㅎㅎ


by 마농 [2022.07.18 08:13:12]

뷰를 통한 Insert 실습이네요.
실제로 생성된 뷰가 아닌 in-line View 를 이용했네요.
From 절의 서브쿼리를 인라인뷰라고 합니다.
http://gurubee.net/lecture/1036
참고로, 뷰를 이용한 Update 도 가능합니다.

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