메세지를 데이터베이스에 저장하면 그 payload를 긁어다가 알림을 보내는 서비스가 붙어 있는데메세지를 못 받았다는 고객들이 생겨 로그를 보니 아래와 같이 저장하는 데이터 길이 때문에 문제가 발생했다.복제할 LOB 데이터의 길이(90105)가 구성된 최대 길이 65536을(를) 초과합니다. 저장 프로시저 sp_configure를 사용하여 max text repl size 옵션에 대해 구성된 최댓값을 늘리십시오. 이 옵션의 기본값은 65536입니다. 이 값이 -1로 구성되어 있으면 데이터 형식에서 요구하는 제한 이외의 제한이 없음을 나타냅니다. 메세지를 보내는 서비스는 1MB까지 수용 가능한데, 이에 도달하기도 전에 기본 최대 텍스트 크기가 65536이어서 발생한 문제다. 마스터 권한으로 해당하는 데이..
운영 이슈가 생겨 특정 테이블의 한 행을 지웠는데, 운영팀이 다시 복구해달라고 한다. 다행히 delete 날리기 전에 혹시 몰라 데이터를 파일로 다운로드 해놔서 가능했다. 예를 들어, MEMBER 테이블의 id가 identity 자동 증가값으로 설정되어 있는데, 999번인 데이터를 지워 중간 999번의 행이 날라간 경우 set identity_insert MEMBER on; insert into MEMBER (id, name, email, password) values (999, 'Jane', 'jane@janes.shop', 'password!!'); set identity_insert MEMBER off; off 이후로 다시 id 값이 자동 증가한다.
상품 구매 후 영수증 신청 테이블 예시 idx product status reg_date price receipt_type issue_date 1 스위트홈 발행대기 2021-05-05 29000 세금계산서 2 종이의 집 발행대기 2021-05-06 28000 현금영수증 3 인간수업 발행대기 2021-05-08 32000 세금계산서 4 킹덤 발행완료 2021-05-09 28000 현금영수증 2021-05-13 5 보건교사 안은영 발행완료 2021-05-09 31500 현금영수증 2021-05-13 6 좋아하면 울리는 발행완료 2021-05-10 27000 세금계산서 2021-05-17 7 아이 엠 낫 오케이 발행대기 2021-05-14 32000 세금계산서 8 안나라수마나라 발행완료 2021-05-20 3..
예를 들어, 아래와 같이 서비스를 SERVICE_TABLE 이 있다고 가정할 때, no user_id service_no start_date end_date 0001 janes 1 2021-03-27 23:59:59.000 2022-06-27 23:59:59.000 0002 judys 2 2021-04-24 23:59:59.000 2021-09-24 23:59:59.000 서비스 번호에 따른 서비스 이름을 출력하고 싶다면 조건문 CASE를 이용하면 된다. SELECT user_id, service_no, CASE WHEN service = 1 THEN 'Neflix' WHEN service = 2 THEN 'Watcha' END AS service_name FROM SERVICE_TABLE user_id..