안녕하세요! 제목 그대로 DB에 데이터를 insert할 때 가끔 insert가 되지 않아 로그 레벨을 디버그로 바꾸고 찍어보았습니다. 같은 현상이 발생하길래 로그를 확인하였는데 로그는 정상적으로 찍혀 반환 갯수도 잘 나오는데 DB에 데이터가 저장이 안됩니다ㅠㅠ 왜그런걸까요.. MS SQL 사용하고 있습니다ㅠㅠ
답변 3
박예린
작성자
주니어 백엔드 개발자 • 5월 8일
네ㅠㅠ 그 부분은 문제 없는 거 확인햇습니다!ㅠㅠ
몇 가지 살펴보면 좋을 것 같습니다. - 쿼리 문제 : 해당 쿼리를 로그로 남겨서 직접 DB에 쿼리를 수행했을 때, 정상적으로 데이터가 들어가는지 확인해보면 좋겠습니다. - 트랜잭션 이슈 : 해당 INSERT가 정상적으로 수행되었더라도 트랜잭션 범위안에서 문제가 발생했다면 롤백이 수행되서 반영되지 않았을 가능성이 있습니다. - 에러 로그 강화 : 데이터 유효성이라든지, DB 연결 문제등이 있다면 에러가 날텐데요. 에러 로그가 정상적으로 표시되고 있는지 확인해보면 좋겠네요.
박예린
작성자
주니어 백엔드 개발자 • 5월 8일
쿼리 문제나 트랜잭션 이슈는 없어보입니다! 혹 에러 로그 강화는 어떻게 할 수 있을까요ㅠㅠㅠ
안녕하세요, 데이터베이스에 데이터가 삽입되지 않는 문제는 매우 다양한 원인에 의해 발생할 수 있습니다. 아래에 몇 가지 가능한 원인을 나열해 봤습니다: 1. 트랜잭션 문제: 트랜잭션이 제대로 커밋되지 않은 경우 데이터베이스에 변경사항이 반영되지 않습니다. 트랜잭션이 롤백되거나 아예 커밋되지 않은 경우에는 SQL 문이 성공적으로 실행되었음에도 불구하고, 데이터베이스에 변경이 반영되지 않습니다. 2. 동시성 문제: 여러 쓰레드나 프로세스가 동시에 같은 데이터를 변경하려고 할 때 발생할 수 있습니다. 이 경우에는 보통 락이나 데드락 등의 문제로 인해 데이터 변경이 실패할 수 있습니다. 3. 데이터 유효성 문제: 입력하려는 데이터가 데이터베이스 스키마의 제약 조건을 위반한 경우에는 삽입이 실패할 수 있습니다. 예를 들어, NOT NULL 필드에 NULL 값을 넣으려고 하거나, UNIQUE 제약을 가진 필드에 중복된 값을 넣으려고 하는 경우 등입니다. 4. 데이터베이스 연결 문제: 데이터베이스 연결이 끊어지거나, 네트워크 문제 등으로 데이터베이스에 접근할 수 없는 경우에는 삽입이 실패할 수 있습니다. 5. 로그와 실제 DB 작업의 차이: 로그는 쿼리가 실행된 것을 나타내지만, 실제로 DB에 반영되었는지는 확인하지 않습니다. DB에 적용하는 과정에서 문제가 발생할 수 있습니다. 해결 방법은 문제의 원인에 따라 다릅니다. 문제가 발생하는 상황을 좀 더 자세히 살펴보고, 필요하다면 코드나 SQL 문, 데이터베이스 설정 등을 점검해 보시는 것이 좋을 것 같습니다. 문제가 계속되면, 데이터베이스 관리자(DBA)나 동료 개발자에게 도움을 청하거나, 더 구체적인 정보와 함께 추가 질문을 해 보세요.
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직 개발자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!