본문 바로가기
MySql

MySQL Golang Insert NULL into sql instead of empty string

by 베이스 공부 2020. 11. 1.
반응형

golang을 사용하여 mysql 데이터베이스에 데이터를 삽입하려고합니다. 내 값이 빈 문자열을 사용하는 경우 null을 삽입하고 싶습니다. 빈 문자열 대신 null을 삽입하려면 다음을 어떻게 조정할 수 있습니까? 감사.

_, err := m.Db.Exec(`INSERT INTO 
                         visitor_events
                         (type, 
                          info, 
                          url_path, 
                          visitor_id, 
                          created_at, 
                          domain)
                          VALUES
                          (?, ?, ?, ?, ?, ?)`,
                          m.SaveEventType(ve), ve.EventInfo, m.SaveURLPath(ve.UrlPath), ve.VisitorId, time.Now().UTC(), ve.Domain)

 

해결 방법

 


func NewNullString(s string) sql.NullString {
    if len(s) == 0 {
        return sql.NullString{}
    }
    return sql.NullString{
         String: s,
         Valid: true,
    }
}

그런 다음 Exec 를 사용할 때마다 DB에서 NULL이 될 수있는 문자열을 NewNullString 함수로 래핑합니다.

db.Exec(`
  insert into
      users first_name, last_name, email
      values (?,?,?)`,
  firstName,
  lastName,
  NewNullString(email),
)

 

참조 페이지 https://stackoverflow.com/questions/40266633

 

 

반응형

댓글