Maison >développement back-end >Golang >Comment vérifier l'existence d'un enregistrement et l'insérer si nécessaire dans Golang ?

Comment vérifier l'existence d'un enregistrement et l'insérer si nécessaire dans Golang ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-10 16:14:16873parcourir

How to Check for Record Existence and Insert if Necessary in Golang?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn