Maison > développement back-end > Golang > le corps du texte

Comment gérer les lignes inexistantes dans la fonction de suppression de GORM ?

Mary-Kate Olsen
Libérer: 2024-10-27 10:26:30
original
992 Les gens l'ont consulté

How to Handle Non-Existent Rows in GORM's Delete Function?

Gestion des erreurs dans la fonction de suppression de GORM

Lorsque vous travaillez avec des suppressions de bases de données à l'aide de GORM, il est crucial de réfléchir à la manière dont vous souhaitez gérer les suppressions de bases de données inexistantes. rangées. Par défaut, GORM ne génère pas d'erreur lors de la tentative de suppression d'une ligne inexistante. Au lieu de cela, le champ result.Error reste nul.

Pour modifier ce comportement et renvoyer une erreur pour les lignes inexistantes, vous devez inspecter le champ RowsAffected. Voici comment modifier votre fonction DeleteCategory :

<code class="go">func DeleteCategory(id uint) error {
    c := Category{ID: id}

    db := db.Delete(&c)
    if db.Error != nil {
        return db.Error
    } else if db.RowsAffected < 1 {
        return fmt.Errorf("row with id=%d cannot be deleted because it doesn't exist", id)
    }

    return nil
}</code>
Copier après la connexion

Dans cette fonction modifiée :

  1. La méthode Delete de GORM est invoquée, attribuant le résultat à db.
  2. Si db.Error n'est pas nul, une erreur est renvoyée.
  3. Après avoir confirmé qu'il n'y a pas d'erreur générale, db.RowsAffected est vérifié. S'il est inférieur à 1, indiquant qu'aucune ligne n'a été affectée par l'opération de suppression, un message d'erreur personnalisé est renvoyé.
  4. Une valeur d'erreur nulle est renvoyée si la suppression de la ligne a réussi.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!