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(),
    ])
    .json(json!({
        "aspect": 4.21,
        "image": "123",
    }))
    .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]

Specify which table to insert into.

Examples

See InsertStatement::values

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

See InsertStatement::values

pub fn columns<C: 'static>(&mut self, columns: Vec<C>) -> &mut Self where
    C: Iden
[src]

Specify what columns to insert.

Examples

See InsertStatement::values

pub fn columns_dyn(&mut self, columns: Vec<Rc<dyn Iden>>) -> &mut Self[src]

Specify what columns to insert, variation of InsertStatement::columns.

Examples

See InsertStatement::values

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]

Specify a row of values to be inserted, taking input of json values.

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]

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]

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 Default for InsertStatement[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.