pub async fn delete_by_id<'e, 'c: 'e, DB, M, E>(
executor: E,
id: impl for<'q> Encode<'q, DB> + Type<DB> + Send + Sync,
) -> Result<()>where
DB: Database + DatabaseInfo,
for<'a> DB::Arguments<'a>: IntoArguments<'a, DB>,
M: Model,
E: Executor<'c, Database = DB> + Send,Expand description
根据 ID 删除记录(泛型版本)
这是统一的泛型实现,支持所有实现了 DatabaseInfo 的数据库类型。
如果模型定义了 SOFT_DELETE_FIELD,则使用逻辑删除;否则使用物理删除。
§类型参数
DB- 数据库类型(如sqlx::MySql,sqlx::Postgres,sqlx::Sqlite)M- 模型类型,必须实现ModeltraitE- 执行器类型,可以是连接池或事务
§参数
executor- 数据库执行器(连接池或事务)id- 主键 ID 值
§返回值
删除成功返回 Ok(())
§示例
ⓘ
use sqlxplus::{DatabaseInfo, crud};
// MySQL
crud::delete_by_id::<sqlx::MySql, User, _>(pool, 1).await?;
// PostgreSQL
crud::delete_by_id::<sqlx::Postgres, User, _>(pool, 1).await?;
// SQLite
crud::delete_by_id::<sqlx::Sqlite, User, _>(pool, 1).await?;