首页 >后端开发 >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 的数据库连接数据库和一个查询,用于根据特定名称值检查记录是否存在。如果记录不存在,则希望将其插入数据库。

实现此目的的一种方法是使用条件查询一次性执行检查和插入。具体操作方法如下:

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