2019/05/08

기존에 존재하던 테이블의 데이터 채번룰이 변경되었다. 그래서 기존의 데이터들을 수정하려하니 FK 관련 오류를 맞닥드렸다. 처음에는 구글링을 하여 TRIGGER를 사용하여 수정을 하던 중 2019/05/08 - [Life/Today I Learned] - [오라클]oracle update cacade (FK 걸려있는 컬럼 업데이트) 불가능한 녀석들이 있었는데, 왜냐하면 FK 제약조건들이 얽히고 섥혀있어서 여러 테이블에 걸려있었기 때문이다. 그래서 고민하다가 해결책으로 생각한 것이 CONSTRAINT 제약 조건을 잠시 DISABLE시키는 것이였다. 걸려있는데 제약조건들을 모두 DISABLE시켜서 데이터를 수정한 후 ENABLE 시켰다. 2019/05/08 - [Life/Today I Learned] - [오..
오라클에서는 제약 조건을 삭제하지 않고 비활성화하여 사용을 잠시 보류할 수 있도록 해주는 DISABLE CONSTRAINT와 이렇게 비활성화된 제약 조건을 다시 활성화 상태로 만들어 주는 ENABLE CONSTRAINT를 제공한다. DISABLE CONSTRAINT : 제약조건 일시 비활성화 ENABLE CONSTRAINT : 비활성화된 제약조건을 해제하여 다시 활성화 형식 ALTER TABLE table_name DISABLE [CONSTRAINT constraint_name]; 특별한 업무를 수행하는 과정에서 이러한 제역 조건 때문에 작업이 진행을 못하는 경우에 제약 조건을 비활성화하여 작업을 진행할 수 있다.
FK가 잡혀있을 때, 키 값이 업데이트가 되지 않는 경우가 존재한다. 학생 테이블 학생ID 학생 나이 학교 ID .. 학교 테이블 학교 ID .. 예를 들어 테이블이 이렇게 존재한다고 하자. (어디까지나 예이다...) 테이블이 존재함과 더불어 이미 데이터들이 들어있으며, 학생테이블 학교ID 와 학교테이블 학교ID는 FK 관계이며 제약조건(CONSTRAINT)까지 걸려있다. 그런데 중간에 학교 ID 채번룰이 바뀌었다. 따라서 바뀐채번룰에 맞게 기존 데이터를 변경하려고 한다. 학생 테이블에 UPDATE 문을 날렸다. UPDATE 학생테이블 SET OLD_학교ID = NEW_학교ID WHERE 학교ID = OLD_학교ID 오류가 난다. CONSTRAINT에 위배가 된다고 한다. 그렇다면 학교 테이블부터 변경해..
깡냉쓰
'2019/05/08 글 목록