pub type DeleteBuilder<'a, Schema, State, Table, Marker = (), Row = ()> = QueryBuilder<'a, Schema, State, Table, Marker, Row>;Expand description
A PostgreSQL DELETE being built: a QueryBuilder
in one of the Delete* states.
Optionally add WHERE, then RETURNING. Without WHERE, every row is
deleted.
§Examples
use drizzle::core::expr::gt;
let query = db
.delete(user)
.r#where(gt(user.id, 10))
.returning(user.id);
assert_eq!(
query.to_sql().sql(),
r#"DELETE FROM "users" WHERE "users"."id" > $1 RETURNING "users"."id""#
);Aliased Type§
pub struct DeleteBuilder<'a, Schema, State, Table, Marker = (), Row = ()> {
pub sql: SQL<'a, PostgresValue<'a>>,
/* private fields */
}Fields§
§sql: SQL<'a, PostgresValue<'a>>The SQL built so far.
Implementations§
Source§impl<'a, S, T> DeleteBuilder<'a, S, DeleteInitial, T>
impl<'a, S, T> DeleteBuilder<'a, S, DeleteInitial, T>
Sourcepub fn where<E, ScopeProof>(
self,
condition: E,
) -> DeleteBuilder<'a, S, DeleteWhereSet, T>where
E: ExprSources + Expr<'a, PostgresValue<'a>>,
E::Sources: SourcesIn<Cons<T, Nil>, ScopeProof>,
E::SQLType: BooleanLike,
pub fn where<E, ScopeProof>(
self,
condition: E,
) -> DeleteBuilder<'a, S, DeleteWhereSet, T>where
E: ExprSources + Expr<'a, PostgresValue<'a>>,
E::Sources: SourcesIn<Cons<T, Nil>, ScopeProof>,
E::SQLType: BooleanLike,
Sourcepub fn returning<Columns, ScopeProof>(
self,
columns: Columns,
) -> DeleteBuilder<'a, S, DeleteReturningSet, T, Scoped<<Columns as IntoSelectTarget>::Marker, Cons<T, Nil>>, <<Columns as IntoSelectTarget>::Marker as ResolveRow<T>>::Row>where
Columns: ExprSources + ToSQL<'a, PostgresValue<'a>> + IntoSelectTarget,
Columns::Sources: SourcesIn<Cons<T, Nil>, ScopeProof>,
Columns::Marker: ResolveRow<T>,
pub fn returning<Columns, ScopeProof>(
self,
columns: Columns,
) -> DeleteBuilder<'a, S, DeleteReturningSet, T, Scoped<<Columns as IntoSelectTarget>::Marker, Cons<T, Nil>>, <<Columns as IntoSelectTarget>::Marker as ResolveRow<T>>::Row>where
Columns: ExprSources + ToSQL<'a, PostgresValue<'a>> + IntoSelectTarget,
Columns::Sources: SourcesIn<Cons<T, Nil>, ScopeProof>,
Columns::Marker: ResolveRow<T>,
Adds RETURNING columns, so the statement returns the deleted rows.
Source§impl<'a, S, T> DeleteBuilder<'a, S, DeleteWhereSet, T>
impl<'a, S, T> DeleteBuilder<'a, S, DeleteWhereSet, T>
Sourcepub fn returning<Columns, ScopeProof>(
self,
columns: Columns,
) -> DeleteBuilder<'a, S, DeleteReturningSet, T, Scoped<<Columns as IntoSelectTarget>::Marker, Cons<T, Nil>>, <<Columns as IntoSelectTarget>::Marker as ResolveRow<T>>::Row>where
Columns: ExprSources + ToSQL<'a, PostgresValue<'a>> + IntoSelectTarget,
Columns::Sources: SourcesIn<Cons<T, Nil>, ScopeProof>,
Columns::Marker: ResolveRow<T>,
pub fn returning<Columns, ScopeProof>(
self,
columns: Columns,
) -> DeleteBuilder<'a, S, DeleteReturningSet, T, Scoped<<Columns as IntoSelectTarget>::Marker, Cons<T, Nil>>, <<Columns as IntoSelectTarget>::Marker as ResolveRow<T>>::Row>where
Columns: ExprSources + ToSQL<'a, PostgresValue<'a>> + IntoSelectTarget,
Columns::Sources: SourcesIn<Cons<T, Nil>, ScopeProof>,
Columns::Marker: ResolveRow<T>,
Adds RETURNING columns after WHERE.