기타
MySQL에서 데이터 삭제 시 저장되는 값
금호박
2024. 8. 25. 22:42
배경
프로젝트를 진행하던 중 null과 ""를 혼돈하여 문제를 겪었다. 분명 코드에서는 빈값이 들어왔을 경우에 대해 조건문을 작성해두었는데, 프론트 쪽에서 요청을 보내면 계속 에러가 발생하는 것이다. 결론은, 내가 생각한 빈 값은 "" 이었고, 프론트에서 생각한 빈 값은 null 이었던 것이다. 사실 이 부분은 기본적인 개념에 해당하는데, 혼동이 있었던 것 같다.
WorkBench를 이용해 String 데이터를 삭제하면 ""이 저장된다.
workbench에 접속하여 mySql 에 저장되어있던 String 필드를 삭제하면 해당 필드에 남겨진 값은 null 이 아닌 ""이다. 실제 workbench에서도 화면을 통해 구분 가능하기도 하다.
만약 빈 값에 대해 검사를 하고 싶다면?
SpringBoot 개발을 JAVA를 이용해서 하고 있는데, 이 경우(String)에는 다음과 같은 방법으로 확인이 가능하다.
- isNull() , == : null 여부 검사 가능
- isNull() 보다는 == 연산자를 사용하는 것이 메소드의 목적성과 가독성 면에서 더 지향되어야 한다.
- https://ittrue.tistory.com/367 (참고 블로그)
- isEmpty() : null과 "" 검사 가능
- isBlank() : null과 "", " " 검사 가능