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ı havuzuentity
: 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ştururSqlParams
: 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(())
}