ORACLE
[DBeaver] There is no physical unique key defined for 해결
개발자 leelee
2025. 3. 31. 23:45
문제상황
select한 화면에서 컬럼을 수정하려고 하는데,
수정이 안되고 아래처럼 오류문구가 떴다.
There is no physical unique key defined for '테이블명'
[Use All Columns] 버튼을 누르면 내가 수정하려는 데이터 외에 다른 데이터도 변경될 수 있어서
[취소] 버튼을 눌러줬다.
오류원인
수정하려는 해당 테이블에 기본키(primary key)나 고유키(unique key)가 정의되어 있지 않아서 생긴 오류.
값을 수정하거나 삭제할 때, 어떤 행을 기준으로 업데이트할지 디비버가 알 수 없어서 생긴 팝업창이다.
해결방법
1. 기본키 또는 고유키 설정하기
=> 테이블 조건을 바꿀 수는 없었음
2. row조건만 잘 걸어서 수정하기
=> 다른 티스토리를 참고했는데 나의 경우에는 같은 오류 떴음
3. 뷰테이블
=> 알고보니 원인은 뷰테이블
뷰테이블을 수정하고 있어서 생긴 오류였다.
조인 (join), 그룹핑(group by), 서브쿼리 등이 있으면 어떤 원본 테이블을 수정해야할지 디비버가 알 수 없다.
=> 원본 테이블을 찾아서 직접 수정해준다.
뷰테이블은 조회전용이라는 걸 기억하자
끝!