Mysql 约束
一张表 主键约束只有一个, 那么主键约束怎么能作为表级约束的呢?
一张表 主键约束只有一个, 那么主键约束怎么能作为表级约束的呢?
2016-11-30
在列定义同时定义的约束称为列级完整性约束定义,作为表的独立的一项定义的完整性约束称为表级完整性约束。在列级完整性约束定义处可以定义如下约束: 一、NOT NULL:限制列取非空值 二、DEFAULT:指定列的默认值,使用形式为:DEFAULT 常量 三、UNIQUE:限制列取值不重 四、CHECK:限制列的取值范围,使用形式为:CHECK(约束表达式) 五、PRIMARY KEY:指定本列为主码 六、FOREIGN KEY:定义本列为引用其他表的外码。使用形式为: 【FOREIGN KEY(<列名>)】REFERENCES<外表名>(<外表列名>) 在上述约束中,除了NOT NULL和DEFAULT不能在表级完整性约束处定义之外,其他约束均可在表级完整性约束处定义。但有几点需要主义:第一,如果CHECK约束是定义多列之间的取值约束,则只能在表级完整性约束处定义;第二,如果表的主码由多个列(超过1列)组成,则这样的主码也只能在表级完整性约束处定义,并注意将主码列用括号括起来,即PRIMARY KEY(列1{【,列2】...});第三,如果在表级完整性约束处定义外码,则FOREIGN KEY 和<列名>均不能省略。
举报