Function delete

Source
pub async fn delete<T: SqlQuery + SqlParams>(
    pool: &Pool,
    entity: T,
) -> Result<u64, Error>
Expand description

§delete

Deadpool bağlantı havuzunu kullanarak veritabanından bir kaydı siler.

§Parametreler

  • pool: Deadpool bağlantı havuzu
  • entity: Silme bilgilerini içeren veri nesnesi (SqlQuery ve SqlParams trait’lerini uygulamalıdır)

§Dönüş Değeri

  • Result<u64, Error>: Başarılı olursa, silinen kayıt sayısını döndürür; başarısız olursa, Error döndürür

§Yapı Tanımı

Bu fonksiyonla kullanılan yapılar aşağıdaki derive makrolarıyla işaretlenmelidir:

#[derive(Deletable, SqlParams)]   // Gerekli makrolar
#[table("tablo_adi")]             // Silinecek tablo adı
#[where_clause("id = $")]          // Silme koşulu
pub struct VeriModeli {
    pub id: i32,                   // Koşulda kullanılan alanlar
    // Diğer alanlar eklenebilir, ancak genellikle sadece koşul alanları gereklidir
}
  • Deletable: Otomatik olarak SQL DELETE ifadeleri oluşturur
  • SqlParams: Otomatik olarak SQL parametreleri oluşturur
  • #[table("tablo_adi")]: Silinecek tablo adını belirtir
  • #[where_clause("id = $")]: Silme koşulunu belirtir ($ parametre değeri ile değiştirilir)

§Kullanım Örneği

use deadpool_postgres::{Config, Runtime, Pool};
use tokio_postgres::{NoTls, Error};
use parsql::tokio_postgres::pool_crud_ops::delete;
 
#[derive(Deletable, SqlParams)]
#[table("users")]
#[where_clause("id = $")]
pub struct DeleteUser {
    pub id: i32,
}
 
#[tokio::main]
async fn main() -> Result<(), Error> {
    let mut cfg = Config::new();
    cfg.host = Some("localhost".to_string());
    cfg.dbname = Some("test".to_string());
     
    let pool = cfg.create_pool(Some(Runtime::Tokio1), NoTls).unwrap();

    let delete_user = DeleteUser { id: 6 };
    let delete_result = delete(&pool, delete_user).await?;
     
    println!("Delete result: {:?}", delete_result);
    Ok(())
}