AlterTable

Struct AlterTable 

Source
pub struct AlterTable { /* private fields */ }
Expand description

Builder of AlterTable command.

Basic API

use sql_query_builder as sql;

let query = sql::AlterTable::new()
  .alter_table("users")
  .add("COLUMN id serial primary key")
  .as_string();

Output

ALTER TABLE users ADD COLUMN id serial primary key

Implementations§

Source§

impl AlterTable

Source

pub fn add(self, add_exp: &str) -> Self

Adds columns or table constraints, this method overrides the previous value

§Example
let query = sql::AlterTable::new()
  .add("COLUMN age int not null")
  .as_string();

Outputs

ADD COLUMN age int not null
§Available on crate feature postgresql and mysql only.

Multiples call of this method will build the SQL respecting the order of the calls

§Example
let query = sql::AlterTable::new()
  .add("COLUMN login varchar not null")
  .add("CONSTRAINT login_unique unique(login)")
  .as_string();

Outputs

ADD COLUMN login varchar not null,
ADD CONSTRAINT login_unique unique(login)
Source

pub fn alter_table(self, table_name: &str) -> Self

Defines the name of the table to be altered, this method overrides the previous value

§Example
let query = sql::AlterTable::new()
  .alter_table("users")
  .as_string();

Outputs

ALTER TABLE users
Source

pub fn as_string(&self) -> String

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

§Example
let query = sql::AlterTable::new()
  .alter_table("users")
  .rename_to("users_old")
  .as_string();

Output

ALTER TABLE users RENAME TO users_old
Source

pub fn debug(self) -> Self

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

§Example
let query = sql::AlterTable::new()
  .alter_table("users")
  .add("name varchar(100) not null")
  .debug()
  .as_string();

Prints to the standard output

-- ------------------------------------------------------------------------------
ALTER TABLE users
  ADD name varchar(100) not null
-- ------------------------------------------------------------------------------
Source

pub fn drop(self, drop_exp: &str) -> Self

Drops columns or table constraints, this method overrides the previous value.

§Example
let query = sql::AlterTable::new()
  .drop("column login")
  .as_string();

Outputs

DROP column login
§Available on crate feature postgresql and mysql only.

Multiples call of this method will build the SQL respecting the order of the calls

§Example
let query = sql::AlterTable::new()
  .drop("column login")
  .drop("constraint login_unique")
  .as_string();

Outputs

DROP column login, DROP constraint login_unique
Source

pub fn new() -> Self

Creates instance of the AlterTable command

Source

pub fn print(self) -> Self

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

Source

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

Adds at the beginning a raw SQL query. Is useful to create a more complex alter table signature.

§Example
let create_table_query = sql::AlterTable::new()
  .raw("ALTER TABLE IF EXISTS users")
  .drop("legacy_column")
  .as_string();

Output

ALTER TABLE IF EXISTS users DROP legacy_column
Source

pub fn raw_after(self, param: AlterTableAction, raw_sql: &str) -> Self

Adds a raw SQL query after a specified parameter.

§Example
let raw = "ADD COLUMN name varchar(100) not null";

let query = sql::AlterTable::new()
  .alter_table("users")
  .raw_after(sql::AlterTableAction::AlterTable, raw)
  .as_string();

Output

ALTER TABLE users ADD COLUMN name varchar(100) not null
Source

pub fn raw_before(self, action: AlterTableAction, raw_sql: &str) -> Self

Adds a raw SQL query before a specified parameter.

§Example
let raw = "/* alter table command */";

let query = sql::AlterTable::new()
  .raw_before(sql::AlterTableAction::AlterTable, raw)
  .alter_table("users")
  .as_string();

Output

/* alter table command */ ALTER TABLE users
Source§

impl AlterTable

Source

pub fn rename(self, action: &str) -> Self

Available on crate features postgresql and sqlite and mysql only.

Changes the column name or table constraints, this method overrides the previous value

§Example
 let query = sql::AlterTable::new()
   .alter_table("users")
   .rename("COLUMN address TO city")
   .to_string();

Outputs

ALTER TABLE users RENAME COLUMN address TO city
§Available on crate feature mysql only.

Changes the table name, column name or table constraints, multiples call of this method will build the SQL respecting the order of the calls

§Example
 let query = sql::AlterTable::new()
   .alter_table("users")
   .rename("TO users_old")
   .rename("COLUMN name TO full_name")
   .to_string();

Outputs

ALTER TABLE users
  RENAME TO users_old,
  RENAME COLUMN name TO full_name
Source§

impl AlterTable

Source

pub fn rename_to(self, table_name: &str) -> Self

Available on crate features postgresql and sqlite only.

Changes the name of the table, this method overrides the previous value

§Example
let query = sql::AlterTable::new()
  .alter_table("users")
  .rename_to("users_old")
  .to_string();

Outputs

ALTER TABLE users RENAME TO users_old
Source§

impl AlterTable

Source

pub fn alter(self, alter_exp: &str) -> Self

Available on crate features postgresql and mysql only.

Alter columns or table constraints. Multiples call of this method will build the SQL respecting the order of the calls

§Example
 let query = sql::AlterTable::new()
   .alter("COLUMN created_at SET DEFAULT now()")
   .to_string();

Outputs

ALTER COLUMN created_at SET DEFAULT now()

Trait Implementations§

Source§

impl Clone for AlterTable

Source§

fn clone(&self) -> AlterTable

Returns a duplicate 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 AlterTable

Source§

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

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

impl Default for AlterTable

Source§

fn default() -> AlterTable

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

impl Display for AlterTable

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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 T
where T: Clone,

Source§

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 T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

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

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.