>백엔드 개발 >Golang >레코드 존재를 확인하고 필요한 경우 Go에 삽입하는 방법은 무엇입니까?

레코드 존재를 확인하고 필요한 경우 Go에 삽입하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-11 06:03:14478검색

How to Check for Record Existence and Insert in Go if Needed?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.