pub enum TableConstraint {
Unique(UniqueConstraint),
PrimaryKey(PrimaryKeyConstraint),
ForeignKey(ForeignKeyConstraint),
Check(CheckConstraint),
Index(IndexConstraint),
FulltextOrSpatial(FullTextOrSpatialConstraint),
PrimaryKeyUsingIndex(ConstraintUsingIndex),
UniqueUsingIndex(ConstraintUsingIndex),
}Expand description
A table-level constraint, specified in a CREATE TABLE or an
ALTER TABLE ADD <constraint> statement.
Variants§
Unique(UniqueConstraint)
MySQL definition for UNIQUE constraints statements:\
[CONSTRAINT [<name>]] UNIQUE <index_type_display> [<index_name>] [index_type] (<columns>) <index_options>
where:
- index_type is
USING {BTREE | HASH} - index_options is
{index_type | COMMENT 'string' | ... %currently unsupported stmts% } ... - index_type_display is
[INDEX | KEY]
PrimaryKey(PrimaryKeyConstraint)
MySQL definition for PRIMARY KEY constraints statements:\
[CONSTRAINT [<name>]] PRIMARY KEY [index_name] [index_type] (<columns>) <index_options>
Actually the specification have no [index_name] but the next query will complete successfully:
CREATE TABLE unspec_table (
xid INT NOT NULL,
CONSTRAINT p_name PRIMARY KEY index_name USING BTREE (xid)
);where:
- index_type is
USING {BTREE | HASH} - index_options is
{index_type | COMMENT 'string' | ... %currently unsupported stmts% } ...
ForeignKey(ForeignKeyConstraint)
A referential integrity constraint ([ CONSTRAINT <name> ] FOREIGN KEY (<columns>) REFERENCES <foreign_table> (<referred_columns>) { [ON DELETE <referential_action>] [ON UPDATE <referential_action>] | [ON UPDATE <referential_action>] [ON DELETE <referential_action>] }).
Check(CheckConstraint)
[ CONSTRAINT <name> ] CHECK (<expr>) [[NOT] ENFORCED]
Index(IndexConstraint)
MySQLs index definition for index creation. Not present on ANSI so, for now, the usage is restricted to MySQL, as no other dialects that support this syntax were found.
{INDEX | KEY} [index_name] [index_type] (key_part,...) [index_option]...
FulltextOrSpatial(FullTextOrSpatialConstraint)
MySQLs fulltext definition. Since the SPATIAL definition is exactly the same,
and MySQL displays both the same way, it is part of this definition as well.
Supported syntax:
{FULLTEXT | SPATIAL} [INDEX | KEY] [index_name] (key_part,...)
key_part: col_namePrimaryKeyUsingIndex(ConstraintUsingIndex)
PostgreSQL definition for promoting an existing unique index to a
PRIMARY KEY constraint:
[ CONSTRAINT constraint_name ] PRIMARY KEY USING INDEX index_name [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
UniqueUsingIndex(ConstraintUsingIndex)
PostgreSQL definition for promoting an existing unique index to a
UNIQUE constraint:
[ CONSTRAINT constraint_name ] UNIQUE USING INDEX index_name [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
Trait Implementations§
Source§impl Clone for TableConstraint
impl Clone for TableConstraint
Source§fn clone(&self) -> TableConstraint
fn clone(&self) -> TableConstraint
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TableConstraint
impl Debug for TableConstraint
Source§impl Display for TableConstraint
impl Display for TableConstraint
Source§impl From<CheckConstraint> for TableConstraint
impl From<CheckConstraint> for TableConstraint
Source§fn from(constraint: CheckConstraint) -> Self
fn from(constraint: CheckConstraint) -> Self
Source§impl From<ForeignKeyConstraint> for TableConstraint
impl From<ForeignKeyConstraint> for TableConstraint
Source§fn from(constraint: ForeignKeyConstraint) -> Self
fn from(constraint: ForeignKeyConstraint) -> Self
Source§impl From<FullTextOrSpatialConstraint> for TableConstraint
impl From<FullTextOrSpatialConstraint> for TableConstraint
Source§fn from(constraint: FullTextOrSpatialConstraint) -> Self
fn from(constraint: FullTextOrSpatialConstraint) -> Self
Source§impl From<IndexConstraint> for TableConstraint
impl From<IndexConstraint> for TableConstraint
Source§fn from(constraint: IndexConstraint) -> Self
fn from(constraint: IndexConstraint) -> Self
Source§impl From<PrimaryKeyConstraint> for TableConstraint
impl From<PrimaryKeyConstraint> for TableConstraint
Source§fn from(constraint: PrimaryKeyConstraint) -> Self
fn from(constraint: PrimaryKeyConstraint) -> Self
Source§impl From<UniqueConstraint> for TableConstraint
impl From<UniqueConstraint> for TableConstraint
Source§fn from(constraint: UniqueConstraint) -> Self
fn from(constraint: UniqueConstraint) -> Self
Source§impl Hash for TableConstraint
impl Hash for TableConstraint
Source§impl Ord for TableConstraint
impl Ord for TableConstraint
Source§fn cmp(&self, other: &TableConstraint) -> Ordering
fn cmp(&self, other: &TableConstraint) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for TableConstraint
impl PartialEq for TableConstraint
Source§fn eq(&self, other: &TableConstraint) -> bool
fn eq(&self, other: &TableConstraint) -> bool
self and other values to be equal, and is used by ==.