cake/update
A DSL to build UPDATE
queries.
Types
pub type UpdateSets =
@internal UpdateSets
pub type UpdateTable =
@internal UpdateTable
pub type WriteQuery(a) =
@internal WriteQuery(a)
Values
pub fn comment(
update updt: @internal Update(a),
comment cmmnt: String,
) -> @internal Update(a)
Sets a Comment
or appends into an existing Comment
.
pub fn epilog(
update updt: @internal Update(a),
epilog eplg: String,
) -> @internal Update(a)
Sets an Epilog
or appends into an existing Epilog
.
pub fn from_sub_query(
update updt: @internal Update(a),
query qry: @internal ReadQuery,
alias als: String,
) -> @internal Update(a)
Sets the FROM
clause of the Update
query to an aliased sub-query.
pub fn from_table(
update updt: @internal Update(a),
name tbl_nm: String,
) -> @internal Update(a)
Sets the FROM
clause of the Update
query to a table name.
pub fn get_comment(
update updt: @internal Update(a),
) -> @internal Comment
Gets the Comment
of the Update
query.
pub fn get_epilog(
update updt: @internal Update(a),
) -> @internal Epilog
Gets the Epilog
of the Update
query.
pub fn get_from(
update updt: @internal Update(a),
) -> @internal From
Gets the FROM
clause of the Update
query.
pub fn get_joins(
update updt: @internal Update(a),
) -> @internal Joins
Gets the Joins
of the Update
query.
pub fn get_set(
update updt: @internal Update(a),
) -> List(@internal UpdateSet)
Get the SET
s of the Update
query.
pub fn get_table(
update updt: @internal Update(a),
) -> @internal UpdateTable
Get the table of the Update
query.
pub fn get_where(
update updt: @internal Update(a),
) -> @internal Where
Gets the Where
of the Update
query.
pub fn join(
update updt: @internal Update(a),
join jn: @internal Join,
) -> @internal Update(a)
Adds a Join
to the Update
query.
NOTICE: On 🐘PostgreSQL and 🪶SQLite Joins
are only allowed if the FROM
clause is set as well.
pub fn joins(
update updt: @internal Update(a),
joins jns: List(@internal Join),
) -> @internal Update(a)
Adds Join
s to the Update
query.
NOTICE: On 🐘PostgreSQL and 🪶SQLite Joins
are only allowed if the FROM
clause is set as well.
pub fn no_comment(
update updt: @internal Update(a),
) -> @internal Update(a)
Removes the Comment
from the Update
query.
pub fn no_epilog(
update updt: @internal Update(a),
) -> @internal Update(a)
Removes the Epilog
from the Update
query.
pub fn no_from(
update updt: @internal Update(a),
) -> @internal Update(a)
Removes the FROM
clause of the Update
query.
pub fn no_join(
update updt: @internal Update(a),
) -> @internal Update(a)
Removes any Joins
from the Update
query.
pub fn no_returning(
update updt: @internal Update(a),
) -> @internal Update(a)
NOTICE: 🦭MariaDB and 🐬MySQL do not support RETURNING
in UPDATE
queries; they do support it in INSERT
(and REPLACE
) queries, however.
pub fn no_where(
update updt: @internal Update(a),
) -> @internal Update(a)
Removes the Where
from the Update
query.
pub fn or_where(
update updt: @internal Update(a),
where whr: @internal Where,
) -> @internal Update(a)
Sets an OrWhere
or appends into an existing OrWhere
.
- If the outermost
Where
is anOrWhere
, the newWhere
is appended to the list withinOrWhere
. - If the query does not have a
Where
clause, the givenWhere
is set instead. - If the outermost
Where
is any other kind ofWhere
, this and the current outermostWhere
are wrapped in anOrWhere
.
pub fn replace_join(
update updt: @internal Update(a),
join jn: @internal Join,
) -> @internal Update(a)
Replaces any Join
s of the Update
query with a signle Join
.
NOTICE: On 🐘PostgreSQL and 🪶SQLite Joins
are only allowed if the FROM
clause is set as well.
pub fn replace_joins(
update updt: @internal Update(a),
joins jns: List(@internal Join),
) -> @internal Update(a)
Replaces any Join
s of the Update
query with the given Join
s.
NOTICE: On 🐘PostgreSQL and 🪶SQLite Joins
are only allowed if the FROM
clause is set as well.
pub fn replace_where(
update updt: @internal Update(a),
where whr: @internal Where,
) -> @internal Update(a)
Replaces the Where
in the Update
query.
pub fn returning(
update updt: @internal Update(a),
returning rtrn: List(String),
) -> @internal Update(a)
NOTICE: 🦭MariaDB and 🐬MySQL do not support RETURNING
in UPDATE
queries; they do support it in INSERT
(and REPLACE
) queries, however.
pub fn set(
update updt: @internal Update(a),
set st: @internal UpdateSet,
) -> @internal Update(a)
Sets or appends one column set in an Update
query.
pub fn set_bool(
column col: String,
value v: Bool,
) -> @internal UpdateSet
Sets a column to a Bool
UpdateParamSet
.
pub fn set_expression(
column col: String,
expression exp: String,
) -> @internal UpdateSet
Sets a column to an expression value.
pub fn set_false(column col: String) -> @internal UpdateSet
Sets a column to a False
UpdateParamSet
.
pub fn set_float(
column col: String,
value v: Float,
) -> @internal UpdateSet
Sets a column to a Float
UpdateParamSet
.
pub fn set_int(
column col: String,
value v: Int,
) -> @internal UpdateSet
Sets a column to a Int
UpdateParamSet
.
pub fn set_null(column col: String) -> @internal UpdateSet
Sets a column to an SQL NULL
UpdateParamSet
.
pub fn set_replace(
update updt: @internal Update(a),
set st: @internal UpdateSet,
) -> @internal Update(a)
Sets or replaces one column set in an Update
query.
pub fn set_string(
column col: String,
value v: String,
) -> @internal UpdateSet
Sets a column to a string UpdateParamSet
.
pub fn set_sub_query(
column col: String,
query qry: @internal ReadQuery,
) -> @internal UpdateSet
Sets a column to a sub-query value.
pub fn set_true(column col: String) -> @internal UpdateSet
Sets a column to a True
UpdateParamSet
.
pub fn sets(
update updt: @internal Update(a),
set sts: List(@internal UpdateSet),
) -> @internal Update(a)
Sets or appends many column sets n an Update
query.
pub fn sets_expression(
columns cols: List(String),
expression exp: String,
) -> @internal UpdateSet
Sets many columns to an expression value.
NOTICE: the expression must return an equal count of columns.
pub fn sets_replace(
update updt: @internal Update(a),
sets sts: List(@internal UpdateSet),
) -> @internal Update(a)
Sets or replaces many column sets in an Update
query.
pub fn sets_sub_query(
columns cols: List(String),
query qry: @internal ReadQuery,
) -> @internal UpdateSet
Sets many columns to a sub-query value.
NOTICE: the sub-query must return an equal count of columns.
pub fn table(
update updt: @internal Update(a),
table_name tbl_nm: String,
) -> @internal Update(a)
Sets the table of the Update
query.
pub fn to_query(
update updt: @internal Update(a),
) -> @internal WriteQuery(a)
Creates a WriteQuery
from an Update
query.
pub fn where(
update updt: @internal Update(a),
where whr: @internal Where,
) -> @internal Update(a)
Sets an AndWhere
or appends into an existing AndWhere
.
- If the outermost
Where
is anAndWhere
, the newWhere
is appended to the list withinAndWhere
. - If the query does not have a
Where
clause, the givenWhere
is set instead. - If the outermost
Where
is any other kind ofWhere
, this and the current outermostWhere
are wrapped in anAndWhere
.
pub fn xor_where(
update updt: @internal Update(a),
where whr: @internal Where,
) -> @internal Update(a)
Sets an XorWhere
or appends into an existing XorWhere
.
- If the outermost
Where
is anXorWhere
, the newWhere
is appended to the list withinXorWhere
. - If the query does not have a
Where
clause, the givenWhere
is set instead. - If the outermost
Where
is any other kind ofWhere
, this and the current outermostWhere
are wrapped in anXorWhere
.
NOTICE: This operator does not exist in 🐘PostgreSQL or 🪶SQLite,
and Cake generates equivalent SQL using OR
and AND
and NOT
.
NOTICE: This operator exists in 🦭MariaDB and 🐬MySQL with native support.