Mit Golang Datensätze effizient prüfen und in eine Datenbank einfügen
Dieser Codeausschnitt untersucht ein Szenario, in dem wir die Existenz eines sicherstellen möchten Nehmen Sie den Datensatz in einer Datenbank auf und fügen Sie ihn mithilfe von Golang ein, falls er nicht vorhanden ist. Der Code stellt eine Verbindung zu einer MySQL-Datenbank her und führt eine Abfrage aus, um die Summe einer bestimmten Spalte über mehrere Tabellen hinweg zu überprüfen.
Um diese Funktionalität zu verbessern, können wir einen if-else-Block hinzufügen, um zu prüfen, ob der Datensatz vorhanden ist mithilfe einer separaten SQL-Abfrage. Wenn der Datensatz bereits vorhanden ist, wird der Code wie gewohnt fortgesetzt. Ist dies jedoch nicht der Fall, wird eine zusätzliche INSERT-Anweisung initiiert, um den Datensatz in die Datenbank einzufügen.
Hier ist der geänderte Code:
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()) } rows, err := db.Query("select sum(usercount) as usercount from ( select count(*) as usercount from category where name = 'construction' union all select count(*) as usercount from sub_category where name = 'construction' union all select count(*) as usercount from industry where name = 'construction' ) as usercounts;") // Check if record exists row := db.QueryRow("SELECT EXISTS(SELECT 1 FROM ...)") var exists bool if err := row.Scan(&exists); err != nil { return err } // Insert record if it doesn't exist if !exists { if err := db.Exec("INSERT ..."); err != nil { return err } } }
Diese Änderung stellt sicher, dass die Datenbank dies immer tut die neuesten Daten, auch wenn ein Datensatz zunächst fehlt.
Das obige ist der detaillierte Inhalt vonWie kann Golang bei Bedarf effizient nach Datenbankeinträgen suchen und diese einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!