Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengendalikan Baris Tidak Wujud dalam Fungsi Padam GORM?

Bagaimana untuk Mengendalikan Baris Tidak Wujud dalam Fungsi Padam GORM?

Patricia Arquette
Patricia Arquetteasal
2024-10-26 19:24:291019semak imbas

How to Handle Nonexistent Rows in GORM's Delete Function?

Mengelakkan Ralat Tiada dalam Fungsi Padam GORM

Dalam aplikasi GORM, percubaan untuk memadamkan baris yang tidak wujud tidak diiktiraf sebagai ralat. Untuk memastikan pengendalian ralat yang betul, adalah penting untuk memeriksa bilangan baris yang terjejas.

Pertimbangkan fungsi DeleteCategory berikut:

<code class="golang">var db *gorm.DB

func DeleteCategory(id uint) error {
    var category Category
    category.ID = id
    result := db.Delete(&category)
    fmt.Println("result.Error: ", result.Error)
    return result.Error
}</code>

Memanggil fungsi ini beberapa kali dengan id yang sama tidak menghasilkan ralat, walaupun hanya memadamkan satu baris pada kali pertama. Ini kerana standard SQL tidak menganggap memadamkan baris yang tidak wujud sebagai ralat.

Untuk membetulkannya, tambahkan semakan untuk medan RowsAffected:

<code class="golang">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>

Dengan pengubahsuaian ini, fungsi akan kembali ralat jika baris dengan id yang ditentukan tidak wujud.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Baris Tidak Wujud dalam Fungsi Padam GORM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn