Struct sea_query::foreign_key::ForeignKeyCreateStatement [−][src]
pub struct ForeignKeyCreateStatement { /* fields omitted */ }Create a foreign key constraint for an existing table. Unsupported by Sqlite
Examples
use sea_query::{*, tests_cfg::*}; let foreign_key = ForeignKey::create() .name("FK_character_font") .from(Char::Table, Char::FontId) .to(Font::Table, Font::Id) .on_delete(ForeignKeyAction::Cascade) .on_update(ForeignKeyAction::Cascade) .to_owned(); assert_eq!( foreign_key.to_string(MysqlQueryBuilder), vec![ r#"ALTER TABLE `character`"#, r#"ADD CONSTRAINT `FK_character_font`"#, r#"FOREIGN KEY `FK_character_font` (`font_id`) REFERENCES `font` (`id`)"#, r#"ON DELETE CASCADE ON UPDATE CASCADE"#, ].join(" ") ); assert_eq!( foreign_key.to_string(PostgresQueryBuilder), vec![ r#"ALTER TABLE "character" ADD CONSTRAINT "FK_character_font""#, r#"FOREIGN KEY ("font_id") REFERENCES "font" ("id")"#, r#"ON DELETE CASCADE ON UPDATE CASCADE"#, ].join(" ") );
Composite key
use sea_query::{*, tests_cfg::*}; let foreign_key = ForeignKey::create() .name("FK_character_glyph") .from(Char::Table, (Char::FontId, Char::Id)) .to(Glyph::Table, (Char::FontId, Glyph::Id)) .on_delete(ForeignKeyAction::Cascade) .on_update(ForeignKeyAction::Cascade) .to_owned(); assert_eq!( foreign_key.to_string(MysqlQueryBuilder), vec![ r#"ALTER TABLE `character`"#, r#"ADD CONSTRAINT `FK_character_glyph`"#, r#"FOREIGN KEY `FK_character_glyph` (`font_id`, `id`) REFERENCES `glyph` (`font_id`, `id`)"#, r#"ON DELETE CASCADE ON UPDATE CASCADE"#, ].join(" ") ); assert_eq!( foreign_key.to_string(PostgresQueryBuilder), vec![ r#"ALTER TABLE "character" ADD CONSTRAINT "FK_character_glyph""#, r#"FOREIGN KEY ("font_id", "id") REFERENCES "glyph" ("font_id", "id")"#, r#"ON DELETE CASCADE ON UPDATE CASCADE"#, ].join(" ") );
Implementations
impl ForeignKeyCreateStatement[src]
impl ForeignKeyCreateStatement[src]pub fn new() -> Self[src]
Construct a new ForeignKeyCreateStatement
pub fn name(self, name: &str) -> Self[src]
Set foreign key name
pub fn table<T: 'static, R: 'static>(self, table: T, ref_table: R) -> Self where
T: Iden,
R: Iden, [src]
T: Iden,
R: Iden,
Please use the [ForeignKeyCreateStatement::from] and [ForeignKeyCreateStatement::to]
Set key table and referencing table
pub fn col<T: 'static, R: 'static>(self, column: T, ref_column: R) -> Self where
T: Iden,
R: Iden, [src]
T: Iden,
R: Iden,
Please use the [ForeignKeyCreateStatement::from] and [ForeignKeyCreateStatement::to]
Set key column and referencing column
pub fn from<T, C>(self, table: T, columns: C) -> Self where
T: IntoIden,
C: IdenList, [src]
T: IntoIden,
C: IdenList,
Set key table and columns
pub fn to<T, C>(self, table: T, columns: C) -> Self where
T: IntoIden,
C: IdenList, [src]
T: IntoIden,
C: IdenList,
Set referencing table and columns
pub fn from_tbl<T>(self, table: T) -> Self where
T: IntoIden, [src]
T: IntoIden,
Set key table
pub fn to_tbl<R>(self, ref_table: R) -> Self where
R: IntoIden, [src]
R: IntoIden,
Set referencing table
pub fn from_col<T>(self, column: T) -> Self where
T: IntoIden, [src]
T: IntoIden,
Add key column
pub fn to_col<R>(self, ref_column: R) -> Self where
R: IntoIden, [src]
R: IntoIden,
Add referencing column
pub fn on_delete(self, action: ForeignKeyAction) -> Self[src]
Set on delete action
pub fn on_update(self, action: ForeignKeyAction) -> Self[src]
Set on update action
pub fn build<T: ForeignKeyBuilder>(&self, foreign_key_builder: T) -> String[src]
Build corresponding SQL statement for certain database backend and return SQL string
pub fn build_any(&self, foreign_key_builder: &dyn ForeignKeyBuilder) -> String[src]
Build corresponding SQL statement for certain database backend and return SQL string
pub fn to_string<T: ForeignKeyBuilder>(&self, foreign_key_builder: T) -> String[src]
Build corresponding SQL statement for certain database backend and return SQL string
Trait Implementations
impl Clone for ForeignKeyCreateStatement[src]
impl Clone for ForeignKeyCreateStatement[src]fn clone(&self) -> ForeignKeyCreateStatement[src]
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Default for ForeignKeyCreateStatement[src]
impl Default for ForeignKeyCreateStatement[src]Auto Trait Implementations
impl !RefUnwindSafe for ForeignKeyCreateStatement
impl !RefUnwindSafe for ForeignKeyCreateStatementimpl !Send for ForeignKeyCreateStatement
impl !Send for ForeignKeyCreateStatementimpl !Sync for ForeignKeyCreateStatement
impl !Sync for ForeignKeyCreateStatementimpl Unpin for ForeignKeyCreateStatement
impl Unpin for ForeignKeyCreateStatementimpl !UnwindSafe for ForeignKeyCreateStatement
impl !UnwindSafe for ForeignKeyCreateStatement