Utiliser Golang pour vérifier et insérer efficacement des enregistrements dans une base de données
Cet extrait de code explore un scénario dans lequel nous voulons garantir l'existence d'un enregistrez-le dans une base de données et insérez-le s'il n'est pas présent en utilisant Golang. Le code établit une connexion à une base de données MySQL et exécute une requête pour vérifier la somme d'une colonne spécifique sur plusieurs tables.
Pour améliorer cette fonctionnalité, nous pouvons ajouter un bloc if-else pour vérifier si l'enregistrement existe en utilisant une requête SQL distincte. Si l'enregistrement existe déjà, le code se déroule comme d'habitude. Cependant, si ce n'est pas le cas, il initie une instruction INSERT supplémentaire pour insérer l'enregistrement dans la base de données.
Voici le code modifié :
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 } } }
Cette modification garantit que la base de données a toujours les dernières données, même si un enregistrement est initialement absent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!