pub struct ForeignKeyCreateStatement { /* private fields */ }
Expand description
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),
[
r#"ALTER TABLE `character`"#,
r#"ADD CONSTRAINT `FK_character_font`"#,
r#"FOREIGN KEY (`font_id`) REFERENCES `font` (`id`)"#,
r#"ON DELETE CASCADE ON UPDATE CASCADE"#,
]
.join(" ")
);
assert_eq!(
foreign_key.to_string(PostgresQueryBuilder),
[
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),
[
r#"ALTER TABLE `character`"#,
r#"ADD CONSTRAINT `FK_character_glyph`"#,
r#"FOREIGN KEY (`font_id`, `id`) REFERENCES `glyph` (`font_id`, `id`)"#,
r#"ON DELETE CASCADE ON UPDATE CASCADE"#,
]
.join(" ")
);
assert_eq!(
foreign_key.to_string(PostgresQueryBuilder),
[
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§
Source§impl ForeignKeyCreateStatement
impl ForeignKeyCreateStatement
Sourcepub fn new() -> ForeignKeyCreateStatement
pub fn new() -> ForeignKeyCreateStatement
Construct a new ForeignKeyCreateStatement
Sourcepub fn name<T>(&mut self, name: T) -> &mut ForeignKeyCreateStatement
pub fn name<T>(&mut self, name: T) -> &mut ForeignKeyCreateStatement
Set foreign key name
Sourcepub fn from<T, C>(
&mut self,
table: T,
columns: C,
) -> &mut ForeignKeyCreateStatementwhere
T: IntoTableRef,
C: IdenList,
pub fn from<T, C>(
&mut self,
table: T,
columns: C,
) -> &mut ForeignKeyCreateStatementwhere
T: IntoTableRef,
C: IdenList,
Set key table and columns
Sourcepub fn to<T, C>(
&mut self,
table: T,
columns: C,
) -> &mut ForeignKeyCreateStatementwhere
T: IntoTableRef,
C: IdenList,
pub fn to<T, C>(
&mut self,
table: T,
columns: C,
) -> &mut ForeignKeyCreateStatementwhere
T: IntoTableRef,
C: IdenList,
Set referencing table and columns
Sourcepub fn from_tbl<T>(&mut self, table: T) -> &mut ForeignKeyCreateStatementwhere
T: IntoTableRef,
pub fn from_tbl<T>(&mut self, table: T) -> &mut ForeignKeyCreateStatementwhere
T: IntoTableRef,
Set key table
Sourcepub fn to_tbl<R>(&mut self, ref_table: R) -> &mut ForeignKeyCreateStatementwhere
R: IntoTableRef,
pub fn to_tbl<R>(&mut self, ref_table: R) -> &mut ForeignKeyCreateStatementwhere
R: IntoTableRef,
Set referencing table
Sourcepub fn from_col<T>(&mut self, column: T) -> &mut ForeignKeyCreateStatementwhere
T: IntoIden,
pub fn from_col<T>(&mut self, column: T) -> &mut ForeignKeyCreateStatementwhere
T: IntoIden,
Add key column
Sourcepub fn to_col<R>(&mut self, ref_column: R) -> &mut ForeignKeyCreateStatementwhere
R: IntoIden,
pub fn to_col<R>(&mut self, ref_column: R) -> &mut ForeignKeyCreateStatementwhere
R: IntoIden,
Add referencing column
Sourcepub fn on_delete(
&mut self,
action: ForeignKeyAction,
) -> &mut ForeignKeyCreateStatement
pub fn on_delete( &mut self, action: ForeignKeyAction, ) -> &mut ForeignKeyCreateStatement
Set on delete action
Sourcepub fn on_update(
&mut self,
action: ForeignKeyAction,
) -> &mut ForeignKeyCreateStatement
pub fn on_update( &mut self, action: ForeignKeyAction, ) -> &mut ForeignKeyCreateStatement
Set on update action
pub fn get_foreign_key(&self) -> &TableForeignKey
pub fn take(&mut self) -> ForeignKeyCreateStatement
Source§impl ForeignKeyCreateStatement
impl ForeignKeyCreateStatement
Sourcepub fn build<T>(&self, schema_builder: T) -> Stringwhere
T: SchemaBuilder,
pub fn build<T>(&self, schema_builder: T) -> Stringwhere
T: SchemaBuilder,
Sourcepub fn build_any(&self, schema_builder: &dyn SchemaBuilder) -> String
pub fn build_any(&self, schema_builder: &dyn SchemaBuilder) -> String
Sourcepub fn to_string<T>(&self, schema_builder: T) -> Stringwhere
T: SchemaBuilder,
pub fn to_string<T>(&self, schema_builder: T) -> Stringwhere
T: SchemaBuilder,
Trait Implementations§
Source§impl Clone for ForeignKeyCreateStatement
impl Clone for ForeignKeyCreateStatement
Source§fn clone(&self) -> ForeignKeyCreateStatement
fn clone(&self) -> ForeignKeyCreateStatement
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ForeignKeyCreateStatement
impl Debug for ForeignKeyCreateStatement
Source§impl Default for ForeignKeyCreateStatement
impl Default for ForeignKeyCreateStatement
Source§fn default() -> ForeignKeyCreateStatement
fn default() -> ForeignKeyCreateStatement
Source§impl From<RelationDef> for ForeignKeyCreateStatement
impl From<RelationDef> for ForeignKeyCreateStatement
Source§fn from(relation: RelationDef) -> ForeignKeyCreateStatement
fn from(relation: RelationDef) -> ForeignKeyCreateStatement
Source§impl SchemaStatementBuilder for ForeignKeyCreateStatement
impl SchemaStatementBuilder for ForeignKeyCreateStatement
Source§fn build<T>(&self, schema_builder: T) -> Stringwhere
T: SchemaBuilder,
fn build<T>(&self, schema_builder: T) -> Stringwhere
T: SchemaBuilder,
Source§fn build_any(&self, schema_builder: &dyn SchemaBuilder) -> String
fn build_any(&self, schema_builder: &dyn SchemaBuilder) -> String
Source§fn to_string<T>(&self, schema_builder: T) -> Stringwhere
T: SchemaBuilder,
fn to_string<T>(&self, schema_builder: T) -> Stringwhere
T: SchemaBuilder,
Auto Trait Implementations§
impl Freeze for ForeignKeyCreateStatement
impl !RefUnwindSafe for ForeignKeyCreateStatement
impl Send for ForeignKeyCreateStatement
impl Sync for ForeignKeyCreateStatement
impl Unpin for ForeignKeyCreateStatement
impl !UnwindSafe for ForeignKeyCreateStatement
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);