Struct InsertStatement
pub struct InsertStatement { /* private fields */ }Expand description
Insert any new rows into an existing table
§Examples
use sea_query::{audit::*, tests_cfg::*, *};
let query = Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Aspect, Glyph::Image])
.values_panic([5.15.into(), "12A".into()])
.values_panic([4.21.into(), "123".into()])
.take();
assert_eq!(
query.to_string(MsSqlQueryBuilder),
r#"INSERT INTO [glyph] ([aspect], [image]) VALUES (5.15, '12A'), (4.21, '123')"#
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"INSERT INTO `glyph` (`aspect`, `image`) VALUES (5.15, '12A'), (4.21, '123')"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"INSERT INTO "glyph" ("aspect", "image") VALUES (5.15, '12A'), (4.21, '123')"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" ("aspect", "image") VALUES (5.15, '12A'), (4.21, '123')"#
);
assert_eq!(
query.audit().unwrap().inserted_tables(),
[Glyph::Table.into_iden()]
);Implementations§
§impl InsertStatement
impl InsertStatement
pub fn new() -> Self
pub fn new() -> Self
Construct a new InsertStatement
pub fn take(&mut self) -> Self
pub fn take(&mut self) -> Self
Take the ownership of data in the current SelectStatement
pub fn replace(&mut self) -> &mut Self
pub fn replace(&mut self) -> &mut Self
Use REPLACE instead of INSERT
§Examples
use sea_query::{tests_cfg::*, *};
let query = Query::insert()
.replace()
.into_table(Glyph::Table)
.columns([Glyph::Aspect, Glyph::Image])
.values_panic([5.15.into(), "12A".into()])
.take();
assert_eq!(
query.to_string(MsSqlQueryBuilder),
r#"REPLACE INTO [glyph] ([aspect], [image]) VALUES (5.15, '12A')"#
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"REPLACE INTO `glyph` (`aspect`, `image`) VALUES (5.15, '12A')"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"REPLACE INTO "glyph" ("aspect", "image") VALUES (5.15, '12A')"#
);pub fn into_table<T>(&mut self, tbl_ref: T) -> &mut Selfwhere
T: IntoTableRef,
pub fn into_table<T>(&mut self, tbl_ref: T) -> &mut Selfwhere
T: IntoTableRef,
pub fn columns<C, I>(&mut self, columns: I) -> &mut Selfwhere
C: IntoIden,
I: IntoIterator<Item = C>,
pub fn columns<C, I>(&mut self, columns: I) -> &mut Selfwhere
C: IntoIden,
I: IntoIterator<Item = C>,
pub fn select_from<S>(&mut self, select: S) -> Result<&mut Self>where
S: Into<SelectStatement>,
pub fn select_from<S>(&mut self, select: S) -> Result<&mut Self>where
S: Into<SelectStatement>,
Specify a select query whose values to be inserted.
§Examples
use sea_query::{audit::*, tests_cfg::*, *};
let query = Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Aspect, Glyph::Image])
.select_from(Query::select()
.column(Glyph::Aspect)
.column(Glyph::Image)
.from(Glyph::Table)
.and_where(Expr::col(Glyph::Image).like("0%"))
.take()
)
.unwrap()
.take();
assert_eq!(
query.to_string(MsSqlQueryBuilder),
r#"INSERT INTO [glyph] ([aspect], [image]) SELECT [aspect], [image] FROM [glyph] WHERE [image] LIKE '0%'"#
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"INSERT INTO `glyph` (`aspect`, `image`) SELECT `aspect`, `image` FROM `glyph` WHERE `image` LIKE '0%'"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"INSERT INTO "glyph" ("aspect", "image") SELECT "aspect", "image" FROM "glyph" WHERE "image" LIKE '0%'"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" ("aspect", "image") SELECT "aspect", "image" FROM "glyph" WHERE "image" LIKE '0%'"#
);
assert_eq!(
query.audit().unwrap().selected_tables(),
[Glyph::Table.into_iden()]
);
assert_eq!(
query.audit().unwrap().inserted_tables(),
[Glyph::Table.into_iden()]
);use sea_query::{tests_cfg::*, *};
let query = Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Image])
.select_from(
Query::select()
.expr(Expr::val("hello"))
.cond_where(Cond::all().not().add(Expr::exists(
Query::select().expr(Expr::val("world")).take(),
)))
.take(),
)
.unwrap()
.take();
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" ("image") SELECT 'hello' WHERE NOT EXISTS(SELECT 'world')"#
);use sea_query::{audit::*, tests_cfg::*, *};
let query = Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Image])
.select_from(
Query::select()
.expr(Expr::col(Font::Name))
.from(Font::Table)
.take(),
)
.unwrap()
.take();
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" ("image") SELECT "name" FROM "font""#
);
assert_eq!(
query.audit().unwrap().selected_tables(),
[Font::Table.into_iden()]
);
assert_eq!(
query.audit().unwrap().inserted_tables(),
[Glyph::Table.into_iden()]
);pub fn values<I>(&mut self, values: I) -> Result<&mut Self>where
I: IntoIterator<Item = Expr>,
pub fn values<I>(&mut self, values: I) -> Result<&mut Self>where
I: IntoIterator<Item = Expr>,
Specify a row of values to be inserted.
Return error when number of values not matching number of columns.
§Examples
use sea_query::{tests_cfg::*, *};
let query = Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Aspect, Glyph::Image])
.values([
2.into(),
Func::cast_as("2020-02-02 00:00:00", "DATE").into(),
])
.unwrap()
.take();
assert_eq!(
query.to_string(MsSqlQueryBuilder),
r#"INSERT INTO [glyph] ([aspect], [image]) VALUES (2, CAST('2020-02-02 00:00:00' AS DATE))"#
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"INSERT INTO `glyph` (`aspect`, `image`) VALUES (2, CAST('2020-02-02 00:00:00' AS DATE))"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"INSERT INTO "glyph" ("aspect", "image") VALUES (2, CAST('2020-02-02 00:00:00' AS DATE))"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" ("aspect", "image") VALUES (2, CAST('2020-02-02 00:00:00' AS DATE))"#
);
assert!(
Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Aspect, Glyph::Image])
.values([1.into()])
.is_err()
);pub fn values_panic<I>(&mut self, values: I) -> &mut Selfwhere
I: IntoIterator<Item = Expr>,
pub fn values_panic<I>(&mut self, values: I) -> &mut Selfwhere
I: IntoIterator<Item = Expr>,
Specify a row of values to be inserted, variation of InsertStatement::values.
§Panics
Panics when number of values not matching number of columns.
The equivalent insert_many method in SeaORM does not panic, it can construct the column list from active models.
§Examples
use sea_query::{tests_cfg::*, *};
let query = Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Aspect, Glyph::Image])
.values_panic([2.1345.into(), "24B".into()])
.values_panic([5.15.into(), "12A".into()])
.take();
assert_eq!(
query.to_string(MsSqlQueryBuilder),
r#"INSERT INTO [glyph] ([aspect], [image]) VALUES (2.1345, '24B'), (5.15, '12A')"#
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"INSERT INTO `glyph` (`aspect`, `image`) VALUES (2.1345, '24B'), (5.15, '12A')"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"INSERT INTO "glyph" ("aspect", "image") VALUES (2.1345, '24B'), (5.15, '12A')"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" ("aspect", "image") VALUES (2.1345, '24B'), (5.15, '12A')"#
);let query = Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Aspect])
.values_panic([2.1345.into(), "24B".into()])
.take();The same query can be constructed using the raw_query! macro.
use sea_query::Values;
let values = vec![(2.1345, "24B"), (5.15, "12A")];
let query = sea_query::raw_query!(
PostgresQueryBuilder,
r#"INSERT INTO "glyph" ("aspect", "image") VALUES {..(values.0:1),}"#
);
assert_eq!(
query.sql,
r#"INSERT INTO "glyph" ("aspect", "image") VALUES ($1, $2), ($3, $4)"#
);
assert_eq!(
query.values,
Values(vec![2.1345.into(), "24B".into(), 5.15.into(), "12A".into()])
);
// same as above but with named fields:
struct Item<'a> {
aspect: f64,
image: &'a str,
};
let values = vec![
Item {
aspect: 2.1345,
image: "24B",
},
Item {
aspect: 5.15,
image: "12A",
},
];
let new_query = sea_query::raw_query!(
PostgresQueryBuilder,
r#"INSERT INTO "glyph" ("aspect", "image") VALUES {..(values.aspect, values.image),}"#
);
assert_eq!(query.sql, new_query.sql);
assert_eq!(query.values, new_query.values);pub fn values_from_panic<I, J>(&mut self, values_iter: J) -> &mut Self
pub fn values_from_panic<I, J>(&mut self, values_iter: J) -> &mut Self
Add rows to be inserted from an iterator, variation of InsertStatement::values_panic.
§Examples
use sea_query::{audit::*, tests_cfg::*, *};
let rows = vec![[2.1345.into(), "24B".into()], [5.15.into(), "12A".into()]];
let query = Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Aspect, Glyph::Image])
.values_from_panic(rows)
.take();
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"INSERT INTO `glyph` (`aspect`, `image`) VALUES (2.1345, '24B'), (5.15, '12A')"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"INSERT INTO "glyph" ("aspect", "image") VALUES (2.1345, '24B'), (5.15, '12A')"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" ("aspect", "image") VALUES (2.1345, '24B'), (5.15, '12A')"#
);
assert_eq!(
query.audit().unwrap().inserted_tables(),
[Glyph::Table.into_iden()]
);pub fn on_conflict(&mut self, on_conflict: OnConflict) -> &mut Self
pub fn on_conflict(&mut self, on_conflict: OnConflict) -> &mut Self
ON CONFLICT expression
§Examples
OnConflict::update_columns: Update column value of existing row with inserting value
pub fn returning(&mut self, returning: ReturningClause) -> &mut Self
pub fn returning(&mut self, returning: ReturningClause) -> &mut Self
RETURNING expressions.
§Examples
use sea_query::{tests_cfg::*, *};
let query = Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Image])
.values_panic(["12A".into()])
.returning(Query::returning().columns([Glyph::Id]))
.take();
assert_eq!(
query.to_string(MsSqlQueryBuilder),
"INSERT INTO [glyph] ([image]) OUTPUT [id] VALUES ('12A')"
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
"INSERT INTO `glyph` (`image`) VALUES ('12A')"
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"INSERT INTO "glyph" ("image") VALUES ('12A') RETURNING "id""#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" ("image") VALUES ('12A') RETURNING "id""#
);pub fn returning_col<C>(&mut self, col: C) -> &mut Selfwhere
C: IntoColumnRef,
pub fn returning_col<C>(&mut self, col: C) -> &mut Selfwhere
C: IntoColumnRef,
RETURNING expressions for a column.
§Examples
use sea_query::{tests_cfg::*, *};
let query = Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Image])
.values_panic(["12A".into()])
.returning_col(Glyph::Id)
.take();
assert_eq!(
query.to_string(MsSqlQueryBuilder),
"INSERT INTO [glyph] ([image]) OUTPUT [id] VALUES ('12A')"
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
"INSERT INTO `glyph` (`image`) VALUES ('12A')"
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"INSERT INTO "glyph" ("image") VALUES ('12A') RETURNING "id""#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" ("image") VALUES ('12A') RETURNING "id""#
);pub fn returning_all(&mut self) -> &mut Self
pub fn returning_all(&mut self) -> &mut Self
RETURNING expressions all columns.
§Examples
use sea_query::{tests_cfg::*, *};
let query = Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Image])
.values_panic(["12A".into()])
.returning_all()
.take();
assert_eq!(
query.to_string(MsSqlQueryBuilder),
"INSERT INTO [glyph] ([image]) OUTPUT * VALUES ('12A')"
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
"INSERT INTO `glyph` (`image`) VALUES ('12A')"
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"INSERT INTO "glyph" ("image") VALUES ('12A') RETURNING *"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" ("image") VALUES ('12A') 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, Glyph::Image, Glyph::Aspect])
.from(Glyph::Table)
.take();
let cte = CommonTableExpression::new()
.query(select)
.column(Glyph::Id)
.column(Glyph::Image)
.column(Glyph::Aspect)
.table_name("cte")
.to_owned();
let with_clause = WithClause::new().cte(cte).to_owned();
let select = SelectStatement::new()
.columns([Glyph::Id, Glyph::Image, Glyph::Aspect])
.from("cte")
.take();
let mut insert = Query::insert();
insert
.into_table(Glyph::Table)
.columns([Glyph::Id, Glyph::Image, Glyph::Aspect])
.select_from(select)
.unwrap();
let query = insert.with(with_clause);
assert_eq!(
query.to_string(MsSqlQueryBuilder),
r#"WITH [cte] ([id], [image], [aspect]) AS (SELECT [id], [image], [aspect] FROM [glyph]) INSERT INTO [glyph] ([id], [image], [aspect]) SELECT [id], [image], [aspect] FROM [cte]"#
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"WITH `cte` (`id`, `image`, `aspect`) AS (SELECT `id`, `image`, `aspect` FROM `glyph`) INSERT INTO `glyph` (`id`, `image`, `aspect`) SELECT `id`, `image`, `aspect` FROM `cte`"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"WITH "cte" ("id", "image", "aspect") AS (SELECT "id", "image", "aspect" FROM "glyph") INSERT INTO "glyph" ("id", "image", "aspect") SELECT "id", "image", "aspect" FROM "cte""#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"WITH "cte" ("id", "image", "aspect") AS (SELECT "id", "image", "aspect" FROM "glyph") INSERT INTO "glyph" ("id", "image", "aspect") SELECT "id", "image", "aspect" FROM "cte""#
);pub fn with_cte<C: Into<WithClause>>(&mut self, clause: C) -> &mut Self
pub fn with_cte<C: Into<WithClause>>(&mut self, clause: C) -> &mut Self
Create a Common Table Expression by specifying a CommonTableExpression or WithClause to execute this query with.
§Examples
use sea_query::{*, IntoCondition, IntoIden, tests_cfg::*};
let select = SelectStatement::new()
.columns([Glyph::Id, Glyph::Image, Glyph::Aspect])
.from(Glyph::Table)
.take();
let cte = CommonTableExpression::new()
.query(select)
.column(Glyph::Id)
.column(Glyph::Image)
.column(Glyph::Aspect)
.table_name("cte")
.to_owned();
let with_clause = WithClause::new().cte(cte).to_owned();
let select = SelectStatement::new()
.columns([Glyph::Id, Glyph::Image, Glyph::Aspect])
.from("cte")
.take();
let mut query = Query::insert();
query
.with_cte(with_clause)
.into_table(Glyph::Table)
.columns([Glyph::Id, Glyph::Image, Glyph::Aspect])
.select_from(select)
.unwrap();
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"WITH `cte` (`id`, `image`, `aspect`) AS (SELECT `id`, `image`, `aspect` FROM `glyph`) INSERT INTO `glyph` (`id`, `image`, `aspect`) SELECT `id`, `image`, `aspect` FROM `cte`"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"WITH "cte" ("id", "image", "aspect") AS (SELECT "id", "image", "aspect" FROM "glyph") INSERT INTO "glyph" ("id", "image", "aspect") SELECT "id", "image", "aspect" FROM "cte""#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"WITH "cte" ("id", "image", "aspect") AS (SELECT "id", "image", "aspect" FROM "glyph") INSERT INTO "glyph" ("id", "image", "aspect") SELECT "id", "image", "aspect" FROM "cte""#
);pub fn or_default_values(&mut self) -> &mut Self
pub fn or_default_values(&mut self) -> &mut Self
Insert with default values if columns and values are not supplied.
§Examples
use sea_query::{tests_cfg::*, *};
// Insert default
let query = Query::insert()
.into_table(Glyph::Table)
.or_default_values()
.take();
assert_eq!(
query.to_string(MsSqlQueryBuilder),
r#"INSERT INTO [glyph] DEFAULT VALUES"#
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"INSERT INTO `glyph` VALUES ()"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"INSERT INTO "glyph" VALUES (DEFAULT)"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" DEFAULT VALUES"#
);
// Ordinary insert as columns and values are supplied
let query = Query::insert()
.into_table(Glyph::Table)
.or_default_values()
.columns([Glyph::Image])
.values_panic(["ABC".into()])
.take();
assert_eq!(
query.to_string(MsSqlQueryBuilder),
r#"INSERT INTO [glyph] ([image]) VALUES ('ABC')"#
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"INSERT INTO `glyph` (`image`) VALUES ('ABC')"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"INSERT INTO "glyph" ("image") VALUES ('ABC')"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" ("image") VALUES ('ABC')"#
);pub fn or_default_values_many(&mut self, num_rows: u32) -> &mut Self
pub fn or_default_values_many(&mut self, num_rows: u32) -> &mut Self
Insert multiple rows with default values if columns and values are not supplied.
§Examples
use sea_query::{tests_cfg::*, *};
// Insert default
let query = Query::insert()
.into_table(Glyph::Table)
.or_default_values_many(3)
.take();
assert_eq!(
query.to_string(MsSqlQueryBuilder),
r#"INSERT INTO [glyph] DEFAULT VALUES"#
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"INSERT INTO `glyph` VALUES (), (), ()"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"INSERT INTO "glyph" VALUES (DEFAULT), (DEFAULT), (DEFAULT)"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" DEFAULT VALUES"#
);
// Ordinary insert as columns and values are supplied
let query = Query::insert()
.into_table(Glyph::Table)
.or_default_values_many(3)
.columns([Glyph::Image])
.values_panic(["ABC".into()])
.take();
assert_eq!(
query.to_string(MsSqlQueryBuilder),
r#"INSERT INTO [glyph] ([image]) VALUES ('ABC')"#
);
assert_eq!(
query.to_string(MysqlQueryBuilder),
r#"INSERT INTO `glyph` (`image`) VALUES ('ABC')"#
);
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"INSERT INTO "glyph" ("image") VALUES ('ABC')"#
);
assert_eq!(
query.to_string(SqliteQueryBuilder),
r#"INSERT INTO "glyph" ("image") VALUES ('ABC')"#
);§impl InsertStatement
impl InsertStatement
pub fn build_collect_any_into(
&self,
query_builder: &impl QueryBuilder,
sql: &mut impl SqlWriter,
)
pub fn build_collect_any_into( &self, query_builder: &impl QueryBuilder, sql: &mut impl SqlWriter, )
pub fn build_any(&self, query_builder: &impl QueryBuilder) -> (String, Values)
pub fn build_any(&self, query_builder: &impl QueryBuilder) -> (String, Values)
pub fn build_collect_any(
&self,
query_builder: &impl QueryBuilder,
sql: &mut impl SqlWriter,
) -> String
pub fn build_collect_any( &self, query_builder: &impl QueryBuilder, sql: &mut impl SqlWriter, ) -> String
§impl InsertStatement
impl InsertStatement
pub fn build_collect_into<T: QueryBuilder>(
&self,
query_builder: T,
sql: &mut impl SqlWriter,
)
pub fn build_collect_into<T: QueryBuilder>( &self, query_builder: T, sql: &mut impl SqlWriter, )
pub fn build_collect<T: QueryBuilder>(
&self,
query_builder: T,
sql: &mut impl SqlWriter,
) -> String
pub fn build_collect<T: QueryBuilder>( &self, query_builder: T, sql: &mut impl SqlWriter, ) -> String
pub fn build<T: QueryBuilder>(&self, query_builder: T) -> (String, Values)
pub fn build<T: QueryBuilder>(&self, query_builder: T) -> (String, Values)
pub fn to_string<T: QueryBuilder>(&self, query_builder: T) -> String
pub fn to_string<T: QueryBuilder>(&self, query_builder: T) -> String
§impl InsertStatement
impl InsertStatement
pub fn mut_table<F>(&mut self, f: F) -> &mut Self
pub fn get_table(&self) -> Option<&TableRef>
pub fn identity_insert(&mut self) -> &mut Self
pub fn identity_insert(&mut self) -> &mut Self
Enable SET IDENTITY_INSERT ... ON/OFF wrapping for MSSQL.
When enabled, the MSSQL backend will wrap the insert statement with
SET IDENTITY_INSERT <table> ON; ...; SET IDENTITY_INSERT <table> OFF.
§Examples
use sea_query::{tests_cfg::*, *};
let query = Query::insert()
.into_table(Glyph::Table)
.columns([Glyph::Id, Glyph::Image])
.values_panic([1.into(), "12A".into()])
.identity_insert()
.take();
assert_eq!(
query.to_string(MysqlQueryBuilder),
"INSERT INTO `glyph` (`id`, `image`) VALUES (1, '12A')"
);
assert_eq!(
query.to_string(MsSqlQueryBuilder),
"SET IDENTITY_INSERT [glyph] ON; INSERT INTO [glyph] ([id], [image]) VALUES (1, '12A'); SET IDENTITY_INSERT [glyph] OFF"
);pub fn set_identity_insert(&mut self, val: bool) -> &mut Self
pub fn set_identity_insert(&mut self, val: bool) -> &mut Self
Overwrite identity_insert’s value.
Trait Implementations§
§impl Clone for InsertStatement
impl Clone for InsertStatement
§fn clone(&self) -> InsertStatement
fn clone(&self) -> InsertStatement
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for InsertStatement
impl Debug for InsertStatement
§impl Default for InsertStatement
impl Default for InsertStatement
§fn default() -> InsertStatement
fn default() -> InsertStatement
§impl From<InsertStatement> for Expr
impl From<InsertStatement> for Expr
§fn from(v: InsertStatement) -> Self
fn from(v: InsertStatement) -> Self
§impl From<InsertStatement> for QueryStatement
impl From<InsertStatement> for QueryStatement
§fn from(s: InsertStatement) -> Self
fn from(s: InsertStatement) -> Self
§impl From<InsertStatement> for SubQueryStatement
impl From<InsertStatement> for SubQueryStatement
§fn from(s: InsertStatement) -> Self
fn from(s: InsertStatement) -> Self
§impl PartialEq for InsertStatement
impl PartialEq for InsertStatement
§impl QueryStatementBuilder for InsertStatement
impl QueryStatementBuilder for InsertStatement
§fn build_collect_any_into(
&self,
query_builder: &impl QueryBuilder,
sql: &mut impl SqlWriter,
)
fn build_collect_any_into( &self, query_builder: &impl QueryBuilder, sql: &mut impl SqlWriter, )
§fn build_any(&self, query_builder: &impl QueryBuilder) -> (String, Values)
fn build_any(&self, query_builder: &impl QueryBuilder) -> (String, Values)
§fn build_collect_any(
&self,
query_builder: &impl QueryBuilder,
sql: &mut impl SqlWriter,
) -> String
fn build_collect_any( &self, query_builder: &impl QueryBuilder, sql: &mut impl SqlWriter, ) -> String
fn into_sub_query_statement(self) -> SubQueryStatement
§impl QueryStatementWriter for InsertStatement
impl QueryStatementWriter for InsertStatement
fn build_collect_into<T: QueryBuilder>( &self, query_builder: T, sql: &mut impl SqlWriter, )
§fn to_string<T: QueryBuilder>(&self, query_builder: T) -> String
fn to_string<T: QueryBuilder>(&self, query_builder: T) -> String
§fn build<T: QueryBuilder>(&self, query_builder: T) -> (String, Values)
fn build<T: QueryBuilder>(&self, query_builder: T) -> (String, Values)
§fn build_collect<T: QueryBuilder>(
&self,
query_builder: T,
sql: &mut impl SqlWriter,
) -> String
fn build_collect<T: QueryBuilder>( &self, query_builder: T, sql: &mut impl SqlWriter, ) -> String
impl StructuralPartialEq for InsertStatement
Auto Trait Implementations§
impl Freeze for InsertStatement
impl RefUnwindSafe for InsertStatement
impl Send for InsertStatement
impl Sync for InsertStatement
impl Unpin for InsertStatement
impl UnwindSafe for InsertStatement
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> ExprTrait for T
impl<T> ExprTrait for T
§fn count_distinct(self) -> Expr
fn count_distinct(self) -> Expr
COUNT function with the DISTINCT modifier. Read more§fn equals<C>(self, col: C) -> Exprwhere
C: IntoColumnRef,
fn equals<C>(self, col: C) -> Exprwhere
C: IntoColumnRef,
§fn in_subquery(self, sel: SelectStatement) -> Expr
fn in_subquery(self, sel: SelectStatement) -> Expr
IN sub-query expression. Read more§fn in_tuples<V, I>(self, v: I) -> Exprwhere
V: IntoValueTuple,
I: IntoIterator<Item = V>,
fn in_tuples<V, I>(self, v: I) -> Exprwhere
V: IntoValueTuple,
I: IntoIterator<Item = V>,
IN sub expression. Read more§fn is_not_null(self) -> Expr
fn is_not_null(self) -> Expr
IS NOT NULL expression. Read more§fn left_shift<R>(self, right: R) -> Expr
fn left_shift<R>(self, right: R) -> Expr
§fn like<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
fn like<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
LIKE expression. Read more§fn not_between<A, B>(self, a: A, b: B) -> Expr
fn not_between<A, B>(self, a: A, b: B) -> Expr
NOT BETWEEN expression. Read more§fn not_equals<C>(self, col: C) -> Exprwhere
C: IntoColumnRef,
fn not_equals<C>(self, col: C) -> Exprwhere
C: IntoColumnRef,
§fn not_in_subquery(self, sel: SelectStatement) -> Expr
fn not_in_subquery(self, sel: SelectStatement) -> Expr
NOT IN sub-query expression. Read more§fn not_like<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
fn not_like<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
NOT LIKE expression. Read more§fn right_shift<R>(self, right: R) -> Expr
fn right_shift<R>(self, right: R) -> Expr
§impl<T> PgExpr for Twhere
T: ExprTrait,
impl<T> PgExpr for Twhere
T: ExprTrait,
§fn concatenate<T>(self, right: T) -> Expr
fn concatenate<T>(self, right: T) -> Expr
||) expression. Read more§fn matches<T>(self, expr: T) -> Expr
fn matches<T>(self, expr: T) -> Expr
@@) expression. Read more§fn contains<T>(self, expr: T) -> Expr
fn contains<T>(self, expr: T) -> Expr
@>) expression. Read more§fn contained<T>(self, expr: T) -> Expr
fn contained<T>(self, expr: T) -> Expr
<@) expression. Read more§fn ilike<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
fn ilike<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
ILIKE expression. Read more§fn not_ilike<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
fn not_ilike<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
NOT ILIKE expression§fn get_json_field<T>(self, right: T) -> Expr
fn get_json_field<T>(self, right: T) -> Expr
->). Read more