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