반응형
sql.쿼리가 잘리거나 불완전한 결과
코드는 다음과 같습니다.
const qInstances = `
SELECT
i.uuid,
i.host,
i.hostname
FROM
db.instances AS i
WHERE
i.deleted_at IS NULL
GROUP BY i.uuid;
`
...
instancesMap := make(map[string]*models.InstanceModel)
instances := []models.Instance{}
instancesCount := 0
instancesRow, err := db.Query(qInstances)
if err != nil {
panic(err.Error())
}
defer instancesRow.Close()
for instancesRow.Next() {
i := models.Instance{}
err = instancesRow.Scan(&i.UUID, &i.Host, &i.Hostname)
if err != nil {
log.Printf("[Error] - While Scanning Instances Rows, error msg: %s\n", err)
panic(err.Error())
} else {
if i.UUID.String != "" {
instancesCount++
}
if _, ok := instancesMap[i.UUID.String]; !ok {
instancesMap[i.UUID.String] = &models.InstanceModel{}
inst := instancesMap[i.UUID.String]
inst.UUID = i.UUID.String
inst.Host = i.Host.String
inst.Hostname = i.Hostname.String
} else {
inst := instancesMap[i.UUID.String]
inst.UUID = i.UUID.String
inst.Host = i.Host.String
inst.Hostname = i.Hostname.String
}
instances = append(instances, i)
}
}
log.Printf("[Instances] - Total Count: %d\n", instancesCount)
제가 직면한 문제는 SQL 쿼리를 직접 데이터베이스(mariadb)로 실행하면 7150개의 레코드가 반환되지만 프로그램 내의 총 카운트는 5196개의 레코드를 출력한다는 것입니다.또한 DB 연결에 대한 SetConnMaxLifetime 파라미터를 확인하고 240초로 설정했는데 DB와 프로그램 간의 오류나 연결 끊김은 나타나지 않습니다.또한 페이지 번호 부여(각각 5000레코드로 제한)를 시도하여 두 개의 다른 쿼리를 발행하고 첫 번째 쿼리는 5000레코드를 반환하지만 두 번째 쿼리는 196레코드만 반환하려고 합니다.github.com/go-sql-driver/mysql 패키지를 사용하고 있습니다.좋은 생각 있어요?
언급URL : https://stackoverflow.com/questions/68672703/sql-query-truncated-or-incomplete-results
반응형
'programing' 카테고리의 다른 글
공백 공간을 언더스코어로 대체하려면 어떻게 해야 합니까? (0) | 2022.11.27 |
---|---|
날짜로부터 월의 마지막 날을 어떻게 찾을 수 있습니까? (0) | 2022.11.27 |
딕트를 JSON 파일에 덤프하는 방법 (0) | 2022.11.27 |
브라우저 간 JavaScript(jQuery가 아님)를 스크롤하여 상단 애니메이션으로 이동합니다. (0) | 2022.11.27 |
Python 문자열과 정수 연결 (0) | 2022.11.18 |