pub struct Insert<'a> { /* private fields */ }
Expand description

Builder to contruct a Insert command

Implementations§

source§

impl<'a> Insert<'a>

source

pub fn as_string(&self) -> String

Gets the current state of the Insert and returns it as string

Examples
use sql_query_builder as sql;

let query = sql::Insert::new()
  .insert_into("users (login)")
  .values("('foo')")
  .as_string();

Output

INSERT INTO users (login) VALUES ('foo')
source

pub fn debug(self) -> Self

Prints the current state of the Insert into console output in a more ease to read version. This method is useful to debug complex queries or just to print the generated SQL while you type

Examples
use sql_query_builder as sql;

let insert_query = sql::Insert::new()
  .insert_into("users (login, name)")
  .values("('foo', 'Foo')")
  .debug()
  .values("('bar', 'Bar')")
  .as_string();

Output

INSERT INTO users (login, name)
VALUES ('foo', 'Foo')
source

pub fn insert_into(self, table_name: &'a str) -> Self

The insert into clause. This method overrides the previous value

Examples
use sql_query_builder as sql;

let insert = sql::Insert::new()
  .insert_into("users (login, name)");

let insert = sql::Insert::new()
  .insert_into("address (state, country)")
  .insert_into("users (login, name)");
source

pub fn new() -> Self

Create Insert’s instance

source

pub fn on_conflict(self, conflict: &'a str) -> Self

The on conflict clause. This method overrides the previous value

source

pub fn overriding(self, option: &'a str) -> Self

The overriding clause. This method overrides the previous value

source

pub fn print(self) -> Self

Prints the current state of the Insert into console output similar to debug method, the difference is that this method prints in one line.

source

pub fn select(self, select: Select<'a>) -> Self

The select clause. This method overrides the previous value

Examples
use sql_query_builder as sql;

let insert_query = sql::Insert::new()
  .insert_into("users (login, name)")
  .select(
    sql::Select::new()
      .select("login, name")
      .from("users_bk")
      .where_clause("active = true"),
  )
  .as_string();

Output

INSERT INTO users (login, name)
SELECT login, name
FROM users_bk
WHERE active = true
source

pub fn raw(self, raw_sql: &str) -> Self

Adds at the beginning a raw SQL query.

Examples
use sql_query_builder as sql;

let raw_query = "insert into users (login, name)";
let insert_query = sql::Insert::new()
  .raw(raw_query)
  .values("('foo', 'Foo')")
  .as_string();

Output

insert into users (login, name)
VALUES ('bar', 'Bar')
source

pub fn raw_after(self, clause: InsertClause, raw_sql: &str) -> Self

Adds a raw SQL query after a specified clause.

Examples
use sql_query_builder as sql;

let raw = "values ('foo', 'Foo')";
let insert_query = sql::Insert::new()
  .insert_into("users (login, name)")
  .raw_after(sql::InsertClause::InsertInto, raw)
  .as_string();

Output

INSERT INTO users (login, name)
values ('foo', 'Foo')
source

pub fn raw_before(self, clause: InsertClause, raw_sql: &str) -> Self

Adds a raw SQL query before a specified clause.

Examples
use sql_query_builder as sql;

let raw = "insert into users (login, name)";
let insert_query = sql::Insert::new()
  .raw_before(sql::InsertClause::Values, raw)
  .values("('bar', 'Bar')")
  .as_string();

Output

insert into users (login, name)
VALUES ('bar', 'Bar')
source

pub fn values(self, value: &str) -> Self

The values clause

source§

impl<'a> Insert<'a>

source

pub fn returning(self, output_name: &str) -> Self

The returning clause, this method can be used enabling the feature flag postgresql

source

pub fn with(self, name: &'a str, query: impl WithQuery + 'static) -> Self

The with clause, this method can be used enabling the feature flag postgresql

Examples
use sql_query_builder as sql;

let active_users = sql::Select::new().select("*").from("users_bk").where_clause("ative = true");
let insert = sql::Insert::new()
  .with("active_users", active_users)
  .insert_into("users")
  .select(sql::Select::new().select("*").from("active_users"))
  .debug();

Output

WITH active_users AS (
  SELECT *
  FROM users_bk
  WHERE ative = true
)
INSERT INTO users
SELECT *
FROM active_users

Trait Implementations§

source§

impl<'a> Clone for Insert<'a>

source§

fn clone(&self) -> Insert<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Insert<'_>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a> Default for Insert<'a>

source§

fn default() -> Insert<'a>

Returns the “default value” for a type. Read more
source§

impl Display for Insert<'_>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for Insert<'a>

§

impl<'a> !Send for Insert<'a>

§

impl<'a> !Sync for Insert<'a>

§

impl<'a> Unpin for Insert<'a>

§

impl<'a> !UnwindSafe for Insert<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.