Enum sqlparser::ast::TableConstraint
source · pub enum TableConstraint {
Unique {
name: Option<Ident>,
columns: Vec<Ident>,
is_primary: bool,
},
ForeignKey {
name: Option<Ident>,
columns: Vec<Ident>,
foreign_table: ObjectName,
referred_columns: Vec<Ident>,
on_delete: Option<ReferentialAction>,
on_update: Option<ReferentialAction>,
},
Check {
name: Option<Ident>,
expr: Box<Expr>,
},
Index {
display_as_key: bool,
name: Option<Ident>,
index_type: Option<IndexType>,
columns: Vec<Ident>,
},
}Expand description
A table-level constraint, specified in a CREATE TABLE or an
ALTER TABLE ADD <constraint> statement.
Variants
Unique
Fields
is_primary: boolWhether this is a PRIMARY KEY or just a UNIQUE constraint
[ CONSTRAINT <name> ] { PRIMARY KEY | UNIQUE } (<columns>)
ForeignKey
Fields
foreign_table: ObjectNameon_delete: Option<ReferentialAction>on_update: Option<ReferentialAction>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
[ CONSTRAINT <name> ] CHECK (<expr>)
Index
Fields
display_as_key: boolWhether this index starts with KEY (true) or INDEX (false), to maintain the same syntax.
index_type: Option<IndexType>Optional index type.
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]...
Trait Implementations
sourceimpl Clone for TableConstraint
impl Clone for TableConstraint
sourcefn clone(&self) -> TableConstraint
fn clone(&self) -> TableConstraint
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more