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?

Wie kann man in Go effizient prüfen, ob ein Datensatz vorhanden ist, und ihn einfügen, wenn er nicht vorhanden ist?

DDD
DDDOriginal
2024-12-12 15:27:13681Durchsuche

How to Efficiently Check for Record Existence and Insert if Absent in Go?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn