Struct sea_query::table::TableAlterStatement
source · [−]pub struct TableAlterStatement { /* private fields */ }
Expand description
Alter a table
Examples
use sea_query::{tests_cfg::*, *};
let table = Table::alter()
.table(Font::Table)
.add_column(
ColumnDef::new(Alias::new("new_col"))
.integer()
.not_null()
.default(100),
)
.to_owned();
assert_eq!(
table.to_string(MysqlQueryBuilder),
r#"ALTER TABLE `font` ADD COLUMN `new_col` int NOT NULL DEFAULT 100"#
);
assert_eq!(
table.to_string(PostgresQueryBuilder),
r#"ALTER TABLE "font" ADD COLUMN "new_col" integer NOT NULL DEFAULT 100"#
);
assert_eq!(
table.to_string(SqliteQueryBuilder),
r#"ALTER TABLE "font" ADD COLUMN "new_col" integer NOT NULL DEFAULT 100"#,
);
Implementations
sourceimpl TableAlterStatement
impl TableAlterStatement
sourcepub fn add_column(&mut self, column_def: &mut ColumnDef) -> &mut Self
pub fn add_column(&mut self, column_def: &mut ColumnDef) -> &mut Self
Add a column to an existing table
Examples
use sea_query::{tests_cfg::*, *};
let table = Table::alter()
.table(Font::Table)
.add_column(
ColumnDef::new(Alias::new("new_col"))
.integer()
.not_null()
.default(100),
)
.to_owned();
assert_eq!(
table.to_string(MysqlQueryBuilder),
r#"ALTER TABLE `font` ADD COLUMN `new_col` int NOT NULL DEFAULT 100"#
);
assert_eq!(
table.to_string(PostgresQueryBuilder),
r#"ALTER TABLE "font" ADD COLUMN "new_col" integer NOT NULL DEFAULT 100"#
);
assert_eq!(
table.to_string(SqliteQueryBuilder),
r#"ALTER TABLE "font" ADD COLUMN "new_col" integer NOT NULL DEFAULT 100"#,
);
sourcepub fn add_column_if_not_exists(
&mut self,
column_def: &mut ColumnDef
) -> &mut Self
pub fn add_column_if_not_exists(
&mut self,
column_def: &mut ColumnDef
) -> &mut Self
Try add a column to an existing table if it does not exists
Examples
use sea_query::{tests_cfg::*, *};
let table = Table::alter()
.table(Font::Table)
.add_column_if_not_exists(
ColumnDef::new(Alias::new("new_col"))
.integer()
.not_null()
.default(100),
)
.to_owned();
assert_eq!(
table.to_string(MysqlQueryBuilder),
r#"ALTER TABLE `font` ADD COLUMN IF NOT EXISTS `new_col` int NOT NULL DEFAULT 100"#
);
assert_eq!(
table.to_string(PostgresQueryBuilder),
r#"ALTER TABLE "font" ADD COLUMN IF NOT EXISTS "new_col" integer NOT NULL DEFAULT 100"#
);
assert_eq!(
table.to_string(SqliteQueryBuilder),
r#"ALTER TABLE "font" ADD COLUMN "new_col" integer NOT NULL DEFAULT 100"#,
);
sourcepub fn modify_column(&mut self, column_def: &mut ColumnDef) -> &mut Self
pub fn modify_column(&mut self, column_def: &mut ColumnDef) -> &mut Self
Modify a column in an existing table
Examples
use sea_query::{tests_cfg::*, *};
let table = Table::alter()
.table(Font::Table)
.modify_column(
ColumnDef::new(Alias::new("new_col"))
.big_integer()
.default(999),
)
.to_owned();
assert_eq!(
table.to_string(MysqlQueryBuilder),
r#"ALTER TABLE `font` MODIFY COLUMN `new_col` bigint DEFAULT 999"#
);
assert_eq!(
table.to_string(PostgresQueryBuilder),
vec![
r#"ALTER TABLE "font""#,
r#"ALTER COLUMN "new_col" TYPE bigint,"#,
r#"ALTER COLUMN "new_col" SET DEFAULT 999"#,
]
.join(" ")
);
// Sqlite not support modifying table column
sourcepub fn rename_column<T: 'static, R: 'static>(
&mut self,
from_name: T,
to_name: R
) -> &mut Self where
T: Iden,
R: Iden,
pub fn rename_column<T: 'static, R: 'static>(
&mut self,
from_name: T,
to_name: R
) -> &mut Self where
T: Iden,
R: Iden,
Rename a column in an existing table
Examples
use sea_query::{tests_cfg::*, *};
let table = Table::alter()
.table(Font::Table)
.rename_column(Alias::new("new_col"), Alias::new("new_column"))
.to_owned();
assert_eq!(
table.to_string(MysqlQueryBuilder),
r#"ALTER TABLE `font` RENAME COLUMN `new_col` TO `new_column`"#
);
assert_eq!(
table.to_string(PostgresQueryBuilder),
r#"ALTER TABLE "font" RENAME COLUMN "new_col" TO "new_column""#
);
assert_eq!(
table.to_string(SqliteQueryBuilder),
r#"ALTER TABLE "font" RENAME COLUMN "new_col" TO "new_column""#
);
sourcepub fn drop_column<T: 'static>(&mut self, col_name: T) -> &mut Self where
T: Iden,
pub fn drop_column<T: 'static>(&mut self, col_name: T) -> &mut Self where
T: Iden,
Add a column to existing table
Examples
use sea_query::{tests_cfg::*, *};
let table = Table::alter()
.table(Font::Table)
.drop_column(Alias::new("new_column"))
.to_owned();
assert_eq!(
table.to_string(MysqlQueryBuilder),
r#"ALTER TABLE `font` DROP COLUMN `new_column`"#
);
assert_eq!(
table.to_string(PostgresQueryBuilder),
r#"ALTER TABLE "font" DROP COLUMN "new_column""#
);
// Sqlite not support modifying table column
pub fn take(&mut self) -> Self
sourceimpl TableAlterStatement
impl TableAlterStatement
pub fn to_string<T: SchemaBuilder>(&self, schema_builder: T) -> String
pub fn build<T: SchemaBuilder>(&self, schema_builder: T) -> String
pub fn build_any(&self, schema_builder: &dyn SchemaBuilder) -> String
Trait Implementations
sourceimpl Clone for TableAlterStatement
impl Clone for TableAlterStatement
sourcefn clone(&self) -> TableAlterStatement
fn clone(&self) -> TableAlterStatement
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for TableAlterStatement
impl Debug for TableAlterStatement
sourceimpl Default for TableAlterStatement
impl Default for TableAlterStatement
sourceimpl SchemaStatementBuilder for TableAlterStatement
impl SchemaStatementBuilder for TableAlterStatement
sourcefn build<T: SchemaBuilder>(&self, schema_builder: T) -> String
fn build<T: SchemaBuilder>(&self, schema_builder: T) -> String
Build corresponding SQL statement for certain database backend and return SQL string
sourcefn build_any(&self, schema_builder: &dyn SchemaBuilder) -> String
fn build_any(&self, schema_builder: &dyn SchemaBuilder) -> String
Build corresponding SQL statement for certain database backend and return SQL string
sourcefn to_string<T: SchemaBuilder>(&self, schema_builder: T) -> String
fn to_string<T: SchemaBuilder>(&self, schema_builder: T) -> String
Build corresponding SQL statement for certain database backend and return SQL string
Auto Trait Implementations
impl !RefUnwindSafe for TableAlterStatement
impl Send for TableAlterStatement
impl Sync for TableAlterStatement
impl Unpin for TableAlterStatement
impl !UnwindSafe for TableAlterStatement
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more