-- TEST : Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production -- -- 인덱스만 생성 (가능) CREATE UNIQUE INDEX uk_dept_1_1 ON dept_1(SUBSTR(dname, 1, 2), loc); -- 제약설정 (오류) ALTER TABLE dept_1 ADD CONSTRAINT uk_dept_1_2 UNIQUE (SUBSTR(dname, 1, 2), loc); -- 가상컬럼 추가 ALTER TABLE dept_1 ADD dname_2 VARCHAR2(2) GENERATED ALWAYS AS (CAST(SUBSTR(dname, 1, 2) AS VARCHAR2(2))); -- 가상컬럼을 이용한 제약설정 (정상) ALTER TABLE dept_1 ADD CONSTRAINT uk_dept_1_3 UNIQUE (dname_2, loc);
우선, 제품 테이블이 있고 제품 테이블에는 PK인 제품 ID와 제품명 컬럼 등이 있습니다.
제품 ID의 구성은 [업체코드_숫자5자리] 와 같은 형태로 되어있고 업체코드의 구분은 제품 공급업체 2곳의 고유 코드 [AA]와 [BB]입니다. 해당 테이블에서 제품 공급업체와 관련된 컬럼은 없고 이는 가능한 추가하지 않고 싶습니다.
이런 상태에서 제품명을 저희는 unique하게 관리하고 있으며 [ABC] 라는 제품명은 AA 공급업체 에서도, BB 공급업체 에서도 받을 수 있기때문에 [AA_00001, ABC], [BB_00001, ABC] 를 허용하고 싶어서입니다.
말씀주신 내용을 구현할 수 있는 방법을 알 수 있을까요?