얼마전에 DBeaver 툴을 이용해서 데이터를 수정하는데 자꾸 다른 row가 수정되는 것이었다.
분명히 나는 한 row를 수정했는데 테이블 전체의 데이터가 자꾸 변경되는 것이었다.
그랬던 이유를 결국 찾게 되었는데 바로 키때문이었다. 당시 테이블에 키 설정을 새로 하려고 기존에 있던 키를 제거한 상황이었다. 테이블 전체에 아무런 키 설정이 되어있지 않다보니 DBeaver 툴에서 Update를 실행할 때 내가 수정한 row가 어느 row 인지 인식을 못하는 것이었다. 새로운 키를 다시 생성하자 정상적으로 Update가 되었다.
DBeaver 최초 설치시 JDBC 드라이버를 설정해주는 걸 생각해보면, 결국 DBeaver 툴이 데이터를 수정할때는 DB 자체를 수정하는 것이 아니라 JDBC를 통해 DB를 조작하는 것으로 예상된다.
내부적으로 where 1=1 + key를 이용한 조건을 쓰는걸까? ㄷㄷ..
DBeaver 툴 무료 버젼으로도 상당히 편하게 잘 쓸 수 있지만 키 식별이 안되어 update row를 확인할 수 없다면 update가 안되어야 하는 것이 아닌가 생각이 든다.
좋은 툴이지만 조심해서 써야겠다.
'Develop Trouble' 카테고리의 다른 글
| ArrayList contains 는 원시 타입 값을 체크할 수 없다. (0) | 2024.05.16 |
|---|---|
| 한 번의 트랜잭션에서 INSERT 되는 순서 (0) | 2024.04.28 |
| Stream 타입에 대한 이해 (0) | 2024.04.17 |
| Spring Request Body 는 한번만 읽어진다 (0) | 2024.04.17 |
| 스칼라 쿼리와 쿼리 최적화 경험 (0) | 2024.04.08 |