Bei der Arbeit mit einer Datenbank ist es entscheidend, potenzielle Fehler ordnungsgemäß zu behandeln. In GORM stellt die Löschfunktion, die eine Entität aus der Datenbank entfernen soll, ein spezifisches Problem dar, bei dem mehrere Aufrufe mit derselben Kennung keinen Fehler auslösen.
Von Standardmäßig betrachtet GORM den Versuch, eine nicht vorhandene Zeile in der Datenbank zu löschen, nicht als Fehler. Daher gibt die Löschfunktion in solchen Fällen einfach Null zurück, selbst wenn die Entität nicht entfernt werden kann.
Dieses Verhalten ist auf die Tatsache zurückzuführen, dass GORM dem SQL-Standard folgt. was das Löschen einer nicht vorhandenen Zeile nicht als Fehler definiert. Daher gibt GORM nicht automatisch einen Fehler aus, wenn Sie versuchen, eine nicht vorhandene Zeile zu löschen.
Wenn Sie beim Versuch, eine Zeile zu löschen, einen Fehler zurückgeben müssen Wenn eine Zeile nicht vorhanden ist, müssen Sie das Feld „RowsAffected“ des Ergebnisses der Funktion „Löschen“ manuell überprüfen. So können Sie Ihren Code ändern:
<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>
In diesem geänderten Code:
Das obige ist der detaillierte Inhalt vonWie kann die Fehlerbehandlung beim Löschen von Entitäten in GORM sichergestellt werden, wenn Zeilen nicht gefunden werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!