如何在 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中文网其他相关文章!