Maison >développement back-end >Golang >Comment garantir la gestion des erreurs lors de la suppression d'entités dans GORM lorsque les lignes sont introuvables ?
Lorsque vous travaillez avec une base de données, il est crucial de gérer les erreurs potentielles avec élégance. Dans GORM, la fonction Supprimer, destinée à supprimer une entité de la base de données, présente un problème spécifique où plusieurs appels avec le même identifiant ne déclenchent pas d'erreur.
Par par défaut, GORM ne considère pas la tentative de suppression d'une ligne inexistante dans la base de données comme une erreur. Par conséquent, la fonction Supprimer renvoie simplement nil dans de tels cas, même si elle ne parvient pas à supprimer l'entité.
Ce comportement découle du fait que GORM suit la norme SQL, ce qui ne définit pas la suppression d'une ligne inexistante comme une erreur. Par conséquent, GORM ne génère pas automatiquement d'erreur lorsque vous essayez de supprimer une ligne inexistante.
Si vous devez renvoyer une erreur lorsque vous tentez de supprimer une ligne ligne inexistante, vous devez vérifier manuellement le champ RowsAffected du résultat de la fonction Supprimer. Voici comment modifier votre code :
<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>
Dans ce code modifié :
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!