Oracle ACE "Dion Cho" 가 직접 출제하는 주옥같은 문제!
당신의 오라클 내공을 보여주세요~
가장 좋은 정답을 제출한 분께 5만원 상품권을 드립니다!
지금 바로 도전하세요~! 지난달 당첨자 및 정답 발표
정답자 발표 : 2010년 12월 3일 금요일 오후 2시
--------------------------------------------------------------------
퀴즈 접수가 마감되었습니다.
이벤트에 참여해 주신 모든 분들께 감사드립니다. ^^
퀴즈 정답
테이블에 오직 하나의 로우만 들어가게 하는 가장 간단한 방법은 다음과 같이 Unique Index를 만드는 것입니다.
당신의 오라클 내공을 보여주세요~
가장 좋은 정답을 제출한 분께 5만원 상품권을 드립니다!
지금 바로 도전하세요~! 지난달 당첨자 및 정답 발표
이번 달 문제는 특정 테이블에 단 하나의 로우만 들어가게 하는 방법입니다.
가령 아래와 같이 동작해야 합니다.
SQL> create table t1(c1 number, c2 number); Table created. SQL> -- 여기에서 어떤 작업을 해야 단 하나의!!! 로우만 들어가게 할 수 있을까요? { 단 하나의 로우만 들어가도록 어떤 작업을 한다 } Index created. SQL> insert into t1 values(1, 1); 1 row created. SQL> insert into t1 values(2, 2); insert into t1 values(2, 2) * ERROR at line 1: << Error Message Here >>
위의 내용에서 { 단 하나의 로우만 들어가도록 어떤 작업을 한다 }에 들어갈 SQL 문장(들)을 완성하시는 것이 이번 달의 문제입니다.
어떤 세션이 어떤 데이터를 넣어도 단 하나의 로우만 존재해야 합니다. 즉, 첫번째 로우가 들어간 이후로는 더 이상 인서트가 이루어져서는 안됩니다. 그것을 가능하기 위해 필요한 작업을 SQL 문장(들)으로 정리해서 보내주시면 됩니다.
정답자 발표 : 2010년 12월 3일 금요일 오후 2시
--------------------------------------------------------------------
퀴즈 접수가 마감되었습니다.
이벤트에 참여해 주신 모든 분들께 감사드립니다. ^^
퀴즈 정답
테이블에 오직 하나의 로우만 들어가게 하는 가장 간단한 방법은 다음과 같이 Unique Index를 만드는 것입니다.
SQL> create table t1(c1 number, c2 number); Table created. SQL> create unique index t1_n1 on t1(1); -- 상수 값을 가지는 Function Based Index Index created. SQL> insert into t1 values(1, 1); 1 row created. SQL> insert into t1 values(2, 2); insert into t1 values(2, 2) * ERROR at line 1: ORA-00001: unique constraint (TPACK.T1_N1) violated SQL> insert into t1 values(null, null); insert into t1 values(null, null) * ERROR at line 1: ORA-00001: unique constraint (TPACK.T1_N1) violated여러가지 방법을 생각할 수 있겠지만 가장 간단한 방법이 정답으로 선정된 것으로 이해하시면 되겠습니다.
'왕푸짐 이벤트' 카테고리의 다른 글
[이벤트 둘!/정답자 발표] 당신의 오라클 내공을 보여주세요! (0) | 2010.12.21 |
---|---|
[이벤트 하나!] Oracle Event Tour 만화를 채워주세요. (35) | 2010.12.21 |
[이벤트 하나!] Oracle Event Tour 만화를 채워주세요. (25) | 2010.11.23 |
[이벤트 둘!/당첨자 발표] 당신의 오라클 내공을 보여주세요! (1) | 2010.10.27 |
[이벤트 하나!/당첨자발표] Oracle Event Tour 만화를 채워주세요. (17) | 2010.10.19 |
댓글