Skip to main content

UpdateQuery

Struct UpdateQuery 

Source
pub struct UpdateQuery {
    pub with: With,
    pub hints: Hints,
    pub modifiers: Modifiers,
    pub table: TableRef,
    pub extra_tables: Vec<TableRef>,
    pub set: Set,
    pub where_: Where,
    pub order_by: OrderBy,
    pub limit: Limit,
}
Expand description

A MySQL UPDATE.

From https://dev.mysql.com/doc/refman/8.4/en/update.html, with the single-table and multiple-table forms folded together:

[WITH [RECURSIVE] with_query [, ...]]
UPDATE [hint_comment] [LOW_PRIORITY] [IGNORE] table_references
    SET assignment_list
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

There is no UPDATE … FROM. MySQL’s target is a table_references, so a join or a comma joins tables that are all updatable, and SET may assign to any of them. That is the one structural difference from PostgreSQL, and it is why this type implements HasTargetTable rather than HasTableRefupdate::inner_join(..) lands on the updated table list, because there is nowhere else for it to go.

ORDER BY and LIMIT belong to the single-table form only; MySQL rejects them once more than one table is named. Nothing here prevents it — the shape is legal and the server is what says no.

Fields§

§with: With

WITH ….

§hints: Hints

/*+ … */.

§modifiers: Modifiers

LOW_PRIORITY and IGNORE.

§table: TableRef

The first table reference, with its joins.

§extra_tables: Vec<TableRef>

Further comma-separated table references.

§set: Set

SET ….

§where_: Where

WHERE ….

§order_by: OrderBy

ORDER BY …. Single-table form only.

§limit: Limit

LIMIT row_count. Single-table form only, and there is no OFFSET.

Implementations§

Source§

impl UpdateQuery

Source

pub fn new() -> UpdateQuery

An UPDATE with nothing set yet.

Source

pub fn apply(&mut self, mods: impl Mod<UpdateQuery>)

Apply more mods to an existing query.

Trait Implementations§

Source§

impl Clone for UpdateQuery

Source§

fn clone(&self) -> UpdateQuery

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for UpdateQuery

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for UpdateQuery

Source§

fn default() -> UpdateQuery

Returns the “default value” for a type. Read more
Source§

impl Expression for UpdateQuery

Source§

fn write_sql(&self, w: &mut SqlWriter<'_>)

Append this fragment to w. Read more
Source§

impl HasExtraTables for UpdateQuery

Source§

fn extra_tables_mut(&mut self) -> &mut Vec<TableRef>

The additional table references to modify.
Source§

impl HasHints for UpdateQuery

Source§

fn hints_mut(&mut self) -> &mut Hints

The hints to add to.
Source§

impl HasJoins for UpdateQuery

Source§

fn joins_mut(&mut self) -> &mut Vec<Join>

The join list to modify.
Source§

impl HasLimit for UpdateQuery

Source§

fn limit_mut(&mut self) -> &mut Limit

The LIMIT clause to modify.
Source§

impl HasModifiers for UpdateQuery

Source§

fn modifiers_mut(&mut self) -> &mut Modifiers

The modifiers to add to.
Source§

impl HasOrderBy for UpdateQuery

Source§

fn order_by_mut(&mut self) -> &mut OrderBy

The ORDER BY clause to modify.
Source§

impl HasSet for UpdateQuery

Source§

fn set_mut(&mut self) -> &mut Set

The assignment list to modify.
Source§

impl HasTargetTable for UpdateQuery

Source§

fn target_table_mut(&mut self) -> &mut TableRef

The target table to modify.
Source§

impl HasWhere for UpdateQuery

Source§

fn where_mut(&mut self) -> &mut Where

The WHERE clause to modify.
Source§

impl HasWith for UpdateQuery

Source§

fn with_mut(&mut self) -> &mut With

The WITH clause to modify.
Source§

impl IntoExpr for UpdateQuery

Source§

fn into_expr(self) -> Expr

Perform the conversion.
Source§

impl IntoExprList for UpdateQuery

Source§

fn into_expr_list(self) -> Vec<Expr>

Perform the conversion.
Source§

impl Query for UpdateQuery

Source§

fn query_type(&self) -> QueryType

Which statement this renders.
Source§

fn dialect(&self) -> &dyn Dialect

The dialect this query renders itself in. Read more
Source§

fn build(&self) -> Result<(String, Vec<Value>), Error>

Render to SQL and arguments, numbering placeholders from 1. Read more
Source§

fn build_from(&self, start: usize) -> Result<(String, Vec<Value>), Error>

build with a different first placeholder position, for splicing into a statement that already has arguments — bob’s BuildN.
Source§

impl<H, L, M> QueryExtensions<H, L, M> for UpdateQuery

Source§

fn hooks(&self) -> &[Hook]

Hooks to run before this query executes.
Source§

fn loaders(&self) -> &[Loader]

Loaders to run after this query executes, for eagerly loaded relations.
Source§

fn mapper_mods(&self) -> &[MapperMod]

Adjustments to the row mapper, for relations loaded in the same query.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.