Struct sea_query::query::InsertStatement [−][src]
pub struct InsertStatement { /* fields omitted */ }
Insert any new rows into an existing table
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::insert() .into_table(Glyph::Table) .columns(vec![ Glyph::Aspect, Glyph::Image, ]) .values_panic(vec![ 5.15.into(), "12A".into(), ]) .values_panic(vec![ 4.21.into(), "123".into(), ]) .to_owned(); 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')"# );
Implementations
impl InsertStatement
[src]
impl InsertStatement
[src]pub fn new() -> Self
[src]
Construct a new InsertStatement
pub fn into_table<T>(&mut self, tbl_ref: T) -> &mut Self where
T: IntoTableRef,
[src]
T: IntoTableRef,
pub fn columns<C, I>(&mut self, columns: I) -> &mut Self where
C: IntoIden,
I: IntoIterator<Item = C>,
[src]
C: IntoIden,
I: IntoIterator<Item = C>,
pub fn values<I>(&mut self, values: I) -> Result<&mut Self, String> where
I: IntoIterator<Item = Value>,
[src]
I: IntoIterator<Item = Value>,
Specify a row of values to be inserted.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::insert() .into_table(Glyph::Table) .columns(vec![ Glyph::Aspect, Glyph::Image, ]) .values(vec![ 2.1345.into(), "24B".into(), ]) .unwrap() .values_panic(vec![ 5.15.into(), "12A".into(), ]) .to_owned(); 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')"# );
pub fn values_panic<I>(&mut self, values: I) -> &mut Self where
I: IntoIterator<Item = Value>,
[src]
I: IntoIterator<Item = Value>,
Specify a row of values to be inserted, variation of InsertStatement::values
.
pub fn json(&mut self, object: JsonValue) -> &mut Self
[src]
with-json
only.Specify a row of values to be inserted, taking input of json values. A convenience method if you have multiple rows to insert at once.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::insert() .into_table(Glyph::Table) .columns(vec![ Glyph::Aspect, Glyph::Image, ]) .json(json!({ "aspect": 2.1345, "image": "24B", })) .json(json!({ "aspect": 4.21, "image": "123", })) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"INSERT INTO `glyph` (`aspect`, `image`) VALUES (2.1345, '24B'), (4.21, '123')"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"INSERT INTO "glyph" ("aspect", "image") VALUES (2.1345, '24B'), (4.21, '123')"# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"INSERT INTO `glyph` (`aspect`, `image`) VALUES (2.1345, '24B'), (4.21, '123')"# );
pub fn build_collect<T: QueryBuilder>(
&self,
query_builder: T,
collector: &mut dyn FnMut(Value)
) -> String
[src]
&self,
query_builder: T,
collector: &mut dyn FnMut(Value)
) -> String
Build corresponding SQL statement for certain database backend and collect query parameters
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::insert() .into_table(Glyph::Table) .columns(vec![ Glyph::Aspect, Glyph::Image, ]) .values_panic(vec![ 3.1415.into(), "041080".into(), ]) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"INSERT INTO `glyph` (`aspect`, `image`) VALUES (3.1415, '041080')"# ); let mut params = Vec::new(); let mut collector = |v| params.push(v); assert_eq!( query.build_collect(MysqlQueryBuilder, &mut collector), r#"INSERT INTO `glyph` (`aspect`, `image`) VALUES (?, ?)"# ); assert_eq!( params, vec![ Value::Double(3.1415), Value::String(Box::new(String::from("041080"))), ] );
pub fn build_collect_any(
&self,
query_builder: &dyn QueryBuilder,
collector: &mut dyn FnMut(Value)
) -> String
[src]
&self,
query_builder: &dyn QueryBuilder,
collector: &mut dyn FnMut(Value)
) -> String
Build corresponding SQL statement for certain database backend and collect query parameters
pub fn build<T: QueryBuilder>(&self, query_builder: T) -> (String, Values)
[src]
Build corresponding SQL statement for certain database backend and collect query parameters into a vector
Examples
use sea_query::{*, tests_cfg::*}; let (query, params) = Query::insert() .into_table(Glyph::Table) .columns(vec![ Glyph::Aspect, Glyph::Image, ]) .values_panic(vec![ 3.1415.into(), "04108048005887010020060000204E0180400400".into(), ]) .build(MysqlQueryBuilder); assert_eq!( query, r#"INSERT INTO `glyph` (`aspect`, `image`) VALUES (?, ?)"# ); assert_eq!( params, Values(vec![ Value::Double(3.1415), Value::String(Box::new(String::from("04108048005887010020060000204E0180400400"))), ]) );
pub fn build_any(&self, query_builder: &dyn QueryBuilder) -> (String, Values)
[src]
Build corresponding SQL statement for certain database backend and collect query parameters into a vector
pub fn to_string<T: QueryBuilder>(&self, query_builder: T) -> String
[src]
Build corresponding SQL statement for certain database backend and return SQL string
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::insert() .into_table(Glyph::Table) .columns(vec![ Glyph::Aspect, Glyph::Image, ]) .values_panic(vec![ 3.1415.into(), "041".into(), ]) .to_string(MysqlQueryBuilder); assert_eq!( query, r#"INSERT INTO `glyph` (`aspect`, `image`) VALUES (3.1415, '041')"# );
Trait Implementations
impl Clone for InsertStatement
[src]
impl Clone for InsertStatement
[src]fn clone(&self) -> InsertStatement
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Default for InsertStatement
[src]
impl Default for InsertStatement
[src]Auto Trait Implementations
impl !RefUnwindSafe for InsertStatement
impl !RefUnwindSafe for InsertStatement
impl !Send for InsertStatement
impl !Send for InsertStatement
impl !Sync for InsertStatement
impl !Sync for InsertStatement
impl Unpin for InsertStatement
impl Unpin for InsertStatement
impl !UnwindSafe for InsertStatement
impl !UnwindSafe for InsertStatement