가상컬럼이란?
oracle 11g부터 소개되었는데
- 하나의 테이블에 존재하는 다른 컬럼들을 이용하여 새로운 값을 만들어 내는 것을 말합니다.
만드는 방법은
GENERATED ALWAYS AS(조건) VIRTUAL; - 테이터 컬럼명을 만든 곳 뒤에 붙인다.
1 2 3 4 | create table a6( num1 number, num2 number, num3 number generated always as(num1+num2) virtual); | cs |
걷보기엔 일반 테이블과 다를게 없습니다.
그러면 데이터를 넣어보겟습니다.
1 2 3 | insert into a6 values(1,3,5); insert into a6 values(1,3); insert into a6(num1,num2) values(1,3); | cs |
젤 첫번째 오류는 가상컬럼의 제약조건에 위배되었는데 가상컬럼안에는 값을 직접 입력할 수 없습니다.
두번째 오류는 그래도 컬럼이라고 컬럼수가 부족하다는 것 입니다.
가상 컬럼의 조건으로 num1과 num2의 합을 주었기 때문에 4가 들어간 것을 볼 수있습니다.
1 | update a6 set num1=10; | cs |
또한 기존 값을 변경하면 가상컬럼의 값도 변경이 되는 것을 볼 수 있습니다.
'DataBase' 카테고리의 다른 글
[oracle]테이블의 모든 데이터를 제거하는 TRUNCATE TABLE (0) | 2018.11.07 |
---|---|
[oracle]테이블 구조를 제거하는 DROP TABLE (0) | 2018.11.07 |
[oracle]테이블 명을 변경하는 RENAME (0) | 2018.11.07 |
[oracle]테이블 구조를 변경하는 ALTER TABLE (0) | 2018.11.07 |
[ORACLE]테이블 구조를 만드는 CREATE TABLE (0) | 2018.11.07 |