首頁 >後端開發 >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 查詢並將結果儲存在存在變數中。如果exists的值為false,則表示該記錄不存在,我們繼續使用Exec函數插入該記錄。

以上是如何檢查記錄是否存在並在需要時插入 Go?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn