Heim >Backend-Entwicklung >Golang >Wie kann man in Go effizient prüfen, ob ein Datensatz vorhanden ist, und ihn einfügen, wenn er nicht vorhanden ist?
Prüfung auf Vorhandensein von Datensätzen und Einfügen bei Abwesenheit in Go
Im bereitgestellten Go-Code wird eine Abfrage ausgeführt, um die Summe der Benutzer abzurufen Zählt aus den Tabellen „Kategorie“, „Unterkategorie“ und „Branche“ für die Kategorie „Bau“. Der Code prüft jedoch nicht, ob der Datensatz vorhanden ist, bevor er die Abfrage ausführt.
Um zu überprüfen, ob ein Datensatz vorhanden ist, und ihn einzufügen, wenn nicht, ist ein möglicher Ansatz:
package main import ( "database/sql" "fmt" "os" "github.com/gin-gonic/gin" ) func main() { router := gin.New() router.Use(gin.Logger()) router.Use(gin.Recovery()) dbUser := os.Getenv("DB_USER") dbPwd := os.Getenv("DB_PASSWORD") dbHost := os.Getenv("DB_HOST") dbPort := os.Getenv("DB_PORT") dbDatabase := os.Getenv("DB_NAME") db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", dbUser, dbPwd, dbHost, dbPort, dbDatabase)) if err != nil { fmt.Print(err.Error()) } err = db.Ping() if err != nil { fmt.Print(err.Error()) } var exists bool query := "SELECT EXISTS(SELECT 1 FROM ...)" row := db.QueryRow(query) if err = row.Scan(&exists); err != nil { return err } if !exists { query = "INSERT ..."; if _, err = db.Exec(query); err != nil { return err } } }
Dieser Code prüft, ob der Datensatz vorhanden ist, indem er eine Abfrage ausführt und das Ergebnis in der Variablen „exists“ speichert. Wenn der Datensatz nicht vorhanden ist, fügt er ihn in die Datenbank ein, indem eine weitere Abfrage ausgeführt wird.
Das obige ist der detaillierte Inhalt vonWie kann man in Go effizient prüfen, ob ein Datensatz vorhanden ist, und ihn einfügen, wenn er nicht vorhanden ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!