본문 바로가기
ERROR&BUG

[DBeaver] There is no physical unique key defined for... 에러

by 어쩌다개발 2021. 2. 10.
반응형

DBeaver를 사용하다가 가끔 조회된 데이터에서 ROW 선택 후 하단에 [-]삭제 버튼을 클릭해서 삭제를 하려고 하면

Possible multiple rows modification
there is no physical unique key for 'Table Name'
DBeaver will use all columns as unique key.
Possible multiple rows modification
Are you sure you want to proceed?

이라는 내용으로 알럿창이 뜬다.
번역기를 돌려보면

다중 행 수정 가능
'테이블 이름'에 대한 실제 고유 키가 없습니다.
DBeever는 모든 열을 고유 키로 사용합니다.
다중 행 수정 가능
계속하시겠습니까?

결론은 삭제하려고보니 테이블에 고유 키가 없는 상태라서 여러 데이터가 지워질 수도 있다라는 의미이다.
이때 [Use All Columns]버튼을 클릭하면 내가 삭제하려고 했던 데이터외에 다른 데이터까지 지워질 수 있으니, DBeaver가 아닌 다른 툴을 사용할때도 잘 모르겠을때는 반드시 [취소] 버튼을 눌러야 한다.
방법은
1. 취소를 누른 후 테이블에 키를 설정해준다.
2. 하지만 일반적으로 개인 프로젝트 하는경우가 아니고서야 마음대로 PK를 설정할 수 없으니, 이런 경우는 그냥 삭제하고자 하는 ROW의 조건만 잘 걸어서 직접 삭제 쿼리를 날리면 해당 경고문 없이 삭제할 수 있다.
DELETE FROM [TABLE NAME] WHERE [삭제하고자 하는 데이터의 조건들]
** DELETE문을 날리기 전에 꼭 SELECT * FROM [TABLE NAME] WHERE [삭제하고자 하는 데이터의 조건들] 으로 내가 지우고자 하는 데이터가 제대로 조회되는걸 확인 한 후 SELECT를 DELETE로 바꿔서 삭제하도록 하자.



조상님LOTTO - Google Play 앱

무료로 로또 당첨 확률을 높일 수 있습니다.

play.google.com

뽀모도로 타이머(Pomodoro Timer) - Google Play 앱

뽀모도로(Pomodoro)공부법은 단시간 집중력 향상을 위한 자기주도 학습법입니다.

play.google.com


소문난 명강의 김상형의 SQL 정복:Oracle MSSQL MariaDB 기반 실습환경, 한빛미디어 누구나 쉽게 SQL:재미있게 술술 읽으면서 이해하는 SQL 이야기, 길벗 전문가를 위한 오라클 PL/SQL 입문, 제이펍

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."



좋아요, 공감, 구독♡

반응형

댓글