Struct sea_query::query::InsertStatement [−][src]
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]
pub fn new() -> Self
[src]
Construct a new InsertStatement
pub fn into_table<T: 'static>(&mut self, table: T) -> &mut Self where
T: Iden,
[src]
T: Iden,
pub fn into_table_dyn(&mut self, table: Rc<dyn Iden>) -> &mut Self
[src]
Specify which table to insert into, variation of InsertStatement::into_table
.
Examples
pub fn columns<C: 'static>(&mut self, columns: Vec<C>) -> &mut Self where
C: Iden,
[src]
C: Iden,
pub fn columns_dyn(&mut self, columns: Vec<Rc<dyn Iden>>) -> &mut Self
[src]
Specify what columns to insert, variation of InsertStatement::columns
.
Examples
pub fn values(&mut self, values: Vec<Value>) -> Result<&mut Self, String>
[src]
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(&mut self, values: Vec<Value>) -> &mut Self
[src]
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]
fn clone(&self) -> InsertStatement
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for InsertStatement
[src]
impl Default for InsertStatement
[src]
Auto Trait Implementations
impl !RefUnwindSafe for InsertStatement
impl !Send for InsertStatement
impl !Sync for InsertStatement
impl Unpin for InsertStatement
impl !UnwindSafe for InsertStatement
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,