Vérification de l'existence d'un enregistrement et insertion s'il n'existe pas dans Golang
L'objectif est de vérifier si un enregistrement existe dans une base de données et de l'insérer s'il n'existe pas. Pour y parvenir dans Golang, une approche est la suivante :
Pour vérifier l'existence, vous pouvez utiliser la fonction QueryRow, qui renvoie une ligne pour la requête spécifiée. Vous pouvez ensuite analyser cette ligne dans une variable à l'aide de la fonction Scan. Si l'opération d'analyse réussit, la variable sera définie sur true ; sinon, il restera faux.
Si l'enregistrement n'existe pas, vous pouvez utiliser la fonction Exec pour exécuter une instruction INSERT et insérer l'enregistrement.
Voici un exemple de la façon dont vous pouvez implémentez cette approche :
var exists bool row := db.QueryRow("SELECT EXISTS(SELECT 1 FROM category WHERE name = 'construction')") if err := row.Scan(&exists); err != nil { return err } else if !exists { if err := db.Exec("INSERT INTO category (name) VALUES ('construction')"); err != nil { return err } }
Dans cet exemple, nous vérifions l'existence d'un enregistrement dans la table des catégories avec la valeur de la colonne de nom définie sur « construction ». Si l'enregistrement n'existe pas, nous insérons un nouvel enregistrement avec cette valeur.
Vous pouvez adapter cette approche pour vérifier les enregistrements dans d'autres tables et les insérer si nécessaire.
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!