Struct leetcode_tui_rs::migrations::sea_orm::sea_query::UpdateStatement
pub struct UpdateStatement { /* private fields */ }
Expand description
Update existing rows in the table
Examples
use sea_query::{tests_cfg::*, *};
let query = Query::update()
.table(Glyph::Table)
.values([(Glyph::Aspect, 1.23.into()), (Glyph::Image, "123".into())])
.and_where(Expr::col(Glyph::Id).eq(1))
.to_owned();
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"UPDATE `glyph` SET `aspect` = 1.23, `image` = '123' WHERE `id` = 1"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"UPDATE "glyph" SET "aspect" = 1.23, "image" = '123' WHERE "id" = 1"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"UPDATE "glyph" SET "aspect" = 1.23, "image" = '123' WHERE "id" = 1"#
);
Implementations§
§impl UpdateStatement
impl UpdateStatement
pub fn to_string<T>(&self, query_builder: T) -> Stringwhere T: QueryBuilder,
pub fn build<T>(&self, query_builder: T) -> (String, Values)where T: QueryBuilder,
pub fn build_any(&self, query_builder: &dyn QueryBuilder) -> (String, Values)
§impl UpdateStatement
impl UpdateStatement
pub fn order_by<T>(&mut self, col: T, order: Order) -> &mut UpdateStatementwhere T: IntoColumnRef,
pub fn order_by_expr( &mut self, expr: SimpleExpr, order: Order ) -> &mut UpdateStatement
pub fn order_by_customs<I, T>(&mut self, cols: I) -> &mut UpdateStatementwhere T: ToString, I: IntoIterator<Item = (T, Order)>,
pub fn order_by_columns<I, T>(&mut self, cols: I) -> &mut UpdateStatementwhere T: IntoColumnRef, I: IntoIterator<Item = (T, Order)>,
§impl UpdateStatement
impl UpdateStatement
pub fn and_where(&mut self, other: SimpleExpr) -> &mut UpdateStatement
pub fn and_where_option( &mut self, other: Option<SimpleExpr> ) -> &mut UpdateStatement
pub fn cond_where<C>(&mut self, condition: C) -> &mut UpdateStatementwhere C: IntoCondition,
§impl UpdateStatement
impl UpdateStatement
pub fn new() -> UpdateStatement
pub fn new() -> UpdateStatement
Construct a new UpdateStatement
pub fn table<T>(&mut self, tbl_ref: T) -> &mut UpdateStatementwhere
T: IntoTableRef,
pub fn table<T>(&mut self, tbl_ref: T) -> &mut UpdateStatementwhere T: IntoTableRef,
pub fn values<T, I>(&mut self, values: I) -> &mut UpdateStatementwhere
T: IntoIden,
I: IntoIterator<Item = (T, SimpleExpr)>,
pub fn values<T, I>(&mut self, values: I) -> &mut UpdateStatementwhere T: IntoIden, I: IntoIterator<Item = (T, SimpleExpr)>,
Update column values. To set multiple column-value pairs at once.
Examples
use sea_query::{tests_cfg::*, *};
let query = Query::update()
.table(Glyph::Table)
.values([
(Glyph::Aspect, 2.1345.into()),
(Glyph::Image, "235m".into()),
])
.to_owned();
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"UPDATE `glyph` SET `aspect` = 2.1345, `image` = '235m'"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"UPDATE "glyph" SET "aspect" = 2.1345, "image" = '235m'"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"UPDATE "glyph" SET "aspect" = 2.1345, "image" = '235m'"#
);
pub fn value<C, T>(&mut self, col: C, value: T) -> &mut UpdateStatementwhere
C: IntoIden,
T: Into<SimpleExpr>,
pub fn value<C, T>(&mut self, col: C, value: T) -> &mut UpdateStatementwhere C: IntoIden, T: Into<SimpleExpr>,
Update column value by SimpleExpr
.
Examples
use sea_query::{*, tests_cfg::*};
let query = Query::update()
.table(Glyph::Table)
.value(Glyph::Aspect, Expr::cust("60 * 24 * 24"))
.values([
(Glyph::Image, "24B0E11951B03B07F8300FD003983F03F0780060".into()),
])
.to_owned();
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"UPDATE `glyph` SET `aspect` = 60 * 24 * 24, `image` = '24B0E11951B03B07F8300FD003983F03F0780060'"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"UPDATE "glyph" SET "aspect" = 60 * 24 * 24, "image" = '24B0E11951B03B07F8300FD003983F03F0780060'"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"UPDATE "glyph" SET "aspect" = 60 * 24 * 24, "image" = '24B0E11951B03B07F8300FD003983F03F0780060'"#
);
pub fn exprs<T, I>(&mut self, values: I) -> &mut UpdateStatementwhere T: IntoIden, I: IntoIterator<Item = (T, SimpleExpr)>,
👎Deprecated since 0.27.0: Please use the [
UpdateStatement::values
]pub fn col_expr<C, T>(&mut self, col: C, expr: T) -> &mut UpdateStatementwhere C: IntoIden, T: Into<SimpleExpr>,
👎Deprecated since 0.27.0: Please use the [
UpdateStatement::value
]pub fn value_expr<C, T>(&mut self, col: C, expr: T) -> &mut UpdateStatementwhere C: IntoIden, T: Into<SimpleExpr>,
👎Deprecated since 0.27.0: Please use the [
UpdateStatement::value
]pub fn limit(&mut self, limit: u64) -> &mut UpdateStatement
pub fn limit(&mut self, limit: u64) -> &mut UpdateStatement
Limit number of updated rows.
pub fn returning(&mut self, returning: ReturningClause) -> &mut UpdateStatement
pub fn returning(&mut self, returning: ReturningClause) -> &mut UpdateStatement
RETURNING expressions.
Examples
use sea_query::{tests_cfg::*, *};
let query = Query::update()
.table(Glyph::Table)
.value(Glyph::Aspect, 2.1345)
.value(Glyph::Image, "235m")
.returning(Query::returning().columns([Glyph::Id]))
.to_owned();
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"UPDATE `glyph` SET `aspect` = 2.1345, `image` = '235m'"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"UPDATE "glyph" SET "aspect" = 2.1345, "image" = '235m' RETURNING "id""#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"UPDATE "glyph" SET "aspect" = 2.1345, "image" = '235m' RETURNING "id""#
);
pub fn returning_col<C>(&mut self, col: C) -> &mut UpdateStatementwhere
C: IntoColumnRef,
pub fn returning_col<C>(&mut self, col: C) -> &mut UpdateStatementwhere C: IntoColumnRef,
RETURNING expressions for a column.
Examples
use sea_query::{tests_cfg::*, *};
let query = Query::update()
.table(Glyph::Table)
.table(Glyph::Table)
.value(Glyph::Aspect, 2.1345)
.value(Glyph::Image, "235m")
.returning_col(Glyph::Id)
.to_owned();
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"UPDATE `glyph` SET `aspect` = 2.1345, `image` = '235m'"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"UPDATE "glyph" SET "aspect" = 2.1345, "image" = '235m' RETURNING "id""#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"UPDATE "glyph" SET "aspect" = 2.1345, "image" = '235m' RETURNING "id""#
);
pub fn returning_all(&mut self) -> &mut UpdateStatement
pub fn returning_all(&mut self) -> &mut UpdateStatement
RETURNING expressions all columns.
Examples
use sea_query::{tests_cfg::*, *};
let query = Query::update()
.table(Glyph::Table)
.table(Glyph::Table)
.value(Glyph::Aspect, 2.1345)
.value(Glyph::Image, "235m")
.returning_all()
.to_owned();
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"UPDATE `glyph` SET `aspect` = 2.1345, `image` = '235m'"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"UPDATE "glyph" SET "aspect" = 2.1345, "image" = '235m' RETURNING *"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"UPDATE "glyph" SET "aspect" = 2.1345, "image" = '235m' RETURNING *"#
);
pub fn with(self, clause: WithClause) -> WithQuery
pub fn with(self, clause: WithClause) -> WithQuery
Create a WithQuery by specifying a WithClause to execute this query with.
Examples
use sea_query::{*, IntoCondition, IntoIden, tests_cfg::*};
let select = SelectStatement::new()
.columns([Glyph::Id])
.from(Glyph::Table)
.and_where(Expr::col(Glyph::Image).like("0%"))
.to_owned();
let cte = CommonTableExpression::new()
.query(select)
.column(Glyph::Id)
.table_name(Alias::new("cte"))
.to_owned();
let with_clause = WithClause::new().cte(cte).to_owned();
let update = UpdateStatement::new()
.table(Glyph::Table)
.and_where(Expr::col(Glyph::Id).in_subquery(SelectStatement::new().column(Glyph::Id).from(Alias::new("cte")).to_owned()))
.value(Glyph::Aspect, Expr::cust("60 * 24 * 24"))
.to_owned();
let query = update.with(with_clause);
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"WITH `cte` (`id`) AS (SELECT `id` FROM `glyph` WHERE `image` LIKE '0%') UPDATE `glyph` SET `aspect` = 60 * 24 * 24 WHERE `id` IN (SELECT `id` FROM `cte`)"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"WITH "cte" ("id") AS (SELECT "id" FROM "glyph" WHERE "image" LIKE '0%') UPDATE "glyph" SET "aspect" = 60 * 24 * 24 WHERE "id" IN (SELECT "id" FROM "cte")"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"WITH "cte" ("id") AS (SELECT "id" FROM "glyph" WHERE "image" LIKE '0%') UPDATE "glyph" SET "aspect" = 60 * 24 * 24 WHERE "id" IN (SELECT "id" FROM "cte")"#
);
pub fn get_values(&self) -> &[(Arc<dyn Iden, Global>, Box<SimpleExpr, Global>)]
pub fn get_values(&self) -> &[(Arc<dyn Iden, Global>, Box<SimpleExpr, Global>)]
Get column values
Trait Implementations§
§impl Clone for UpdateStatement
impl Clone for UpdateStatement
§fn clone(&self) -> UpdateStatement
fn clone(&self) -> UpdateStatement
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more§impl ConditionalStatement for UpdateStatement
impl ConditionalStatement for UpdateStatement
§fn cond_where<C>(&mut self, condition: C) -> &mut UpdateStatementwhere
C: IntoCondition,
fn cond_where<C>(&mut self, condition: C) -> &mut UpdateStatementwhere C: IntoCondition,
Where condition, expressed with
any
and all
.
Calling cond_where
multiple times will conjoin them.
Calling or_where
after cond_where
will panic. Read more§fn and_where(&mut self, other: SimpleExpr) -> &mut Self
fn and_where(&mut self, other: SimpleExpr) -> &mut Self
§fn and_where_option(&mut self, other: Option<SimpleExpr>) -> &mut Self
fn and_where_option(&mut self, other: Option<SimpleExpr>) -> &mut Self
Optional and where, short hand for
if c.is_some() q.and_where(c)
. Read more§impl Debug for UpdateStatement
impl Debug for UpdateStatement
§impl Default for UpdateStatement
impl Default for UpdateStatement
§fn default() -> UpdateStatement
fn default() -> UpdateStatement
Returns the “default value” for a type. Read more
§impl OrderedStatement for UpdateStatement
impl OrderedStatement for UpdateStatement
§fn clear_order_by(&mut self) -> &mut UpdateStatement
fn clear_order_by(&mut self) -> &mut UpdateStatement
Clear order expressions
§fn order_by<T>(&mut self, col: T, order: Order) -> &mut Selfwhere
T: IntoColumnRef,
fn order_by<T>(&mut self, col: T, order: Order) -> &mut Selfwhere T: IntoColumnRef,
Order by column. Read more
§fn order_by_expr(&mut self, expr: SimpleExpr, order: Order) -> &mut Self
fn order_by_expr(&mut self, expr: SimpleExpr, order: Order) -> &mut Self
Order by
SimpleExpr
.§fn order_by_customs<I, T>(&mut self, cols: I) -> &mut Selfwhere
T: ToString,
I: IntoIterator<Item = (T, Order)>,
fn order_by_customs<I, T>(&mut self, cols: I) -> &mut Selfwhere T: ToString, I: IntoIterator<Item = (T, Order)>,
Order by custom string.
§fn order_by_columns<I, T>(&mut self, cols: I) -> &mut Selfwhere
T: IntoColumnRef,
I: IntoIterator<Item = (T, Order)>,
fn order_by_columns<I, T>(&mut self, cols: I) -> &mut Selfwhere T: IntoColumnRef, I: IntoIterator<Item = (T, Order)>,
Order by vector of columns.
§fn order_by_with_nulls<T>(
&mut self,
col: T,
order: Order,
nulls: NullOrdering
) -> &mut Selfwhere
T: IntoColumnRef,
fn order_by_with_nulls<T>( &mut self, col: T, order: Order, nulls: NullOrdering ) -> &mut Selfwhere T: IntoColumnRef,
Order by column with nulls order option. Read more
§fn order_by_expr_with_nulls(
&mut self,
expr: SimpleExpr,
order: Order,
nulls: NullOrdering
) -> &mut Self
fn order_by_expr_with_nulls( &mut self, expr: SimpleExpr, order: Order, nulls: NullOrdering ) -> &mut Self
Order by
SimpleExpr
with nulls order option.§fn order_by_customs_with_nulls<I, T>(&mut self, cols: I) -> &mut Selfwhere
T: ToString,
I: IntoIterator<Item = (T, Order, NullOrdering)>,
fn order_by_customs_with_nulls<I, T>(&mut self, cols: I) -> &mut Selfwhere T: ToString, I: IntoIterator<Item = (T, Order, NullOrdering)>,
Order by custom string with nulls order option.
§fn order_by_columns_with_nulls<I, T>(&mut self, cols: I) -> &mut Selfwhere
T: IntoColumnRef,
I: IntoIterator<Item = (T, Order, NullOrdering)>,
fn order_by_columns_with_nulls<I, T>(&mut self, cols: I) -> &mut Selfwhere T: IntoColumnRef, I: IntoIterator<Item = (T, Order, NullOrdering)>,
Order by vector of columns with nulls order option.
§impl QueryStatementBuilder for UpdateStatement
impl QueryStatementBuilder for UpdateStatement
§fn build_collect_any_into(
&self,
query_builder: &dyn QueryBuilder,
sql: &mut dyn SqlWriter
)
fn build_collect_any_into( &self, query_builder: &dyn QueryBuilder, sql: &mut dyn SqlWriter )
Build corresponding SQL statement into the SqlWriter for certain database backend and collect query parameters
fn into_sub_query_statement(self) -> SubQueryStatement
§fn build_any(&self, query_builder: &dyn QueryBuilder) -> (String, Values)
fn build_any(&self, query_builder: &dyn QueryBuilder) -> (String, Values)
Build corresponding SQL statement for certain database backend and collect query parameters into a vector
§fn build_collect_any(
&self,
query_builder: &dyn QueryBuilder,
sql: &mut dyn SqlWriter
) -> String
fn build_collect_any( &self, query_builder: &dyn QueryBuilder, sql: &mut dyn SqlWriter ) -> String
Build corresponding SQL statement for certain database backend and collect query parameters
§impl QueryStatementWriter for UpdateStatement
impl QueryStatementWriter for UpdateStatement
fn build_collect_into<T>(&self, query_builder: T, sql: &mut dyn SqlWriter)where T: QueryBuilder,
§fn to_string<T>(&self, query_builder: T) -> Stringwhere
T: QueryBuilder,
fn to_string<T>(&self, query_builder: T) -> Stringwhere T: QueryBuilder,
Build corresponding SQL statement for certain database backend and return SQL string Read more
§fn build<T>(&self, query_builder: T) -> (String, Values)where
T: QueryBuilder,
fn build<T>(&self, query_builder: T) -> (String, Values)where T: QueryBuilder,
Build corresponding SQL statement for certain database backend and collect query parameters into a vector Read more
§fn build_collect<T>(&self, query_builder: T, sql: &mut dyn SqlWriter) -> Stringwhere
T: QueryBuilder,
fn build_collect<T>(&self, query_builder: T, sql: &mut dyn SqlWriter) -> Stringwhere T: QueryBuilder,
Build corresponding SQL statement for certain database backend and collect query parameters Read more
§impl SqlxBinder for UpdateStatement
impl SqlxBinder for UpdateStatement
fn build_sqlx<T>(&self, query_builder: T) -> (String, SqlxValues)where T: QueryBuilder,
fn build_any_sqlx( &self, query_builder: &dyn QueryBuilder ) -> (String, SqlxValues)
source§impl StatementBuilder for UpdateStatement
impl StatementBuilder for UpdateStatement
Auto Trait Implementations§
impl !RefUnwindSafe for UpdateStatement
impl Send for UpdateStatement
impl Sync for UpdateStatement
impl Unpin for UpdateStatement
impl !UnwindSafe for UpdateStatement
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more