ホームページ >バックエンド開発 >Golang >レコードの存在を確認し、必要に応じて Go に挿入する方法

レコードの存在を確認し、必要に応じて Go に挿入する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-11 06:03:14481ブラウズ

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

Go でレコードの存在を確認し、存在しない場合は挿入する方法

Go プログラムでは、MySQL へのデータベース接続があります。データベースと、特定の名前の値に基づいてレコードの存在を確認するクエリ。レコードが存在しない場合は、データベースにレコードを挿入します。

これを実現する 1 つの方法は、条件付きクエリを使用してチェックと挿入を一度に実行することです。その方法は次のとおりです。

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 クエリを実行し、結果をexists 変数に保存します。存在する値が false の場合、レコードが存在しないことを示し、Exec 関数を使用してレコードの挿入に進みます。

以上がレコードの存在を確認し、必要に応じて Go に挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。