오라클 필드값 자동입력 기능 있나요? 0 3 1,250

by 디린이 [Oracle 기초] [2022.08.03 10:37:05]


아래와 같이 테이블이 구성되어있고,

A B
남자  
여자  
남자  

A필드의 값이 남자일때 B필드 값이 1,
A필드의 값이 여자일때 B필드 값이 2

 

update 테이블 set '1'~~ 쿼리문이 아닌

이런식으로 자동으로 업데이트 되는 기능이 있는지 알고 싶습니다.

2번째 데이터 여자가 남자로 바뀐다면, B값도 자동으로 1로 바뀌구요.

 

A B
남자 1
여자 2
남자 1

 

by 마농 [2022.08.03 11:06:10]

1. 가상 컬럼(Virtual Column) 을 이용하는 방법
2. 실제 컬럼에 트리거(Trigger)를 이용해 관리하는 방법
3, B 컬럼이 추가된 VIEW 를 이용하도록 하는 방법


by pajama [2022.08.03 12:50:31]

마농님께서 말씀하신 가상컬럼을 테스트해봤습니다~ 오라클 11g부터 지원된다고 하네요.

SQL > CREATE TABLE t1 (c1 VARCHAR(20),
                       c4 GENERATED ALWAYS AS
                       (CASE WHEN c1 = '남자' THEN 1 ELSE 2 END));

Table created.

SQL> insert into t1 (c1) values ('남자');

1 row created.

SQL> select * from t1;

C1                           C4
-------------------- ----------
남자                          1

SQL>
SQL> update t1 set c1='여자';

1 row updated.

SQL> select * from t1;

C1                           C4
-------------------- ----------
여자                          2

by 디린이 [2022.08.03 13:23:02]

두분 모두 감사드립니다!

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