Go에서 레코드 존재를 확인하고 존재하지 않는 경우 삽입하는 방법
Go 프로그램에는 MySQL에 대한 데이터베이스 연결이 있습니다. 특정 이름 값을 기반으로 레코드의 존재 여부를 확인하는 데이터베이스 및 쿼리입니다. 레코드가 존재하지 않으면 데이터베이스에 삽입하려고 합니다.
이를 달성하는 한 가지 접근 방식은 조건부 쿼리를 사용하여 확인과 삽입을 한 번에 수행하는 것입니다. 수행 방법은 다음과 같습니다.
package main import ( "database/sql" "fmt" "github.com/gin-gonic/gin" ) func main() { router := gin.New() router.Use(gin.Logger()) router.Use(gin.Recovery()) db, err := sql.Open("mysql", "root:password@tcp(gpstest.cksiqniek8yk.ap-south-1.rds.amazonaws.com:3306)/tech") if err != nil { fmt.Print(err.Error()) } err = db.Ping() if err != nil { fmt.Print(err.Error()) } // Check if record exists var exists bool row := db.QueryRow("SELECT EXISTS(SELECT 1 FROM category WHERE name = 'construction')") if err := row.Scan(&exists); err != nil { fmt.Print(err.Error()) } // Insert record if not exists if !exists { if err := db.Exec("INSERT INTO category (name) VALUES ('construction')"); err != nil { fmt.Print(err.Error()) } } }
이 코드에서는 QueryRow 함수를 사용하여 SELECT EXISTS 쿼리를 실행하고 결과를 존재 변수에 저장합니다. 존재의 값이 false이면 해당 레코드가 존재하지 않는다는 의미이며, Exec 함수를 이용하여 레코드 삽입을 진행합니다.
위 내용은 레코드 존재를 확인하고 필요한 경우 Go에 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!