반응형
# 배경
입사 초기에 데이터 Update를 하는데 다 바뀌는데 bool 타입의 값이 변경되지 않았다.
당시에는 경험도 지식도 없어서 해결하는데 많은 시간이 걸렸다.
# 문제의 코드
_, err := common.GetDB(ctx).Where("id = ?", campaign.Id).AllCols().Update(campaign)
AllCols() : 모든 컬럼을 업데이트 시켜준다.
그런데 bool 타입의 컬럼은 false 값만 된다.
# 해결 방법
1) UseBool("컬럼명")을 적으면 bool 타입의 컬럼명을 작성한다.
_, err := common.GetDB(ctx).Where("id = ?", campaign.Id).UseBool("컬럼명").AllCols().Update(campaign)
2) Cols("컬럼명, 컬럼명..")을 적어서 업데이트 하고 싶은 컬럼명만 작성한다.
_, err := common.GetDB(ctx).Where("id = ?", campaign.Id).Cols("컬럼명, 컬럼명").Update(campaign)
나는 보통 cols를 사용해서 컬럼명을 쓴다.
상태값 바꾸고 싶을때 사용, 날짜를 바꿀 때 등등 상황에 맞게 원하는 컬럼값을 변수로 지정해서 하나의 업데이트 함수를 다양하게 사용한다.
반응형
'Study > Go 언어' 카테고리의 다른 글
[Golang] 14세 미만 체크하는 코드 (0) | 2023.09.11 |
---|---|
[Golang] 스웨거(Swagger) 사용하기 (0) | 2023.09.04 |
[Golang] interface{} => struct 변환하기 (0) | 2023.07.22 |
[Golang] 슬랙(Slack)으로 메시지 보내기 (0) | 2023.07.14 |
[Golang] 원하는 문자열 찾기 (0) | 2023.07.03 |