MySQL心得5-2--约束(三)

2014-11-24 09:39:25 · 作者: · 浏览: 2
而,不幸的是,在目前的MySQL版本中,CHECK完整性约束还没有被强化,上面例子中定义的CHECK约束会被MySQL分析,但会被忽略,也就是说,这里的CHECK约束暂时只是一个注释,不会起任何作用。相信在未来的版本中它能得到扩展。
8. CONSTRAINT关键字
如果一条INSERT、UPDATE或DELETE语句违反了完整性约束,则MySQL返回一条出错消息并且拒绝更新,一个更新可能会导致多个完整性约束的违反。在这种情况下,应用程序获取几条出错消息。为了确切地表示是违反了哪一个完整性约束,可以为每个完整性约束分配一个名字,随后,出错消息包含这个名字,从而使得消息对于应用程序更有意义。
constraint关键字用来指定完整性约束的名字。语法格式为:
CONSTRAINT [symbol]
symbol为指定的名字,这个名字在完整性约束的前面被定义,在数据库里这个名字必须是唯一的。如果它没有被给出,则MySQL自动创建这个名字。只能给表完整性约束指定名字,而无法给列完整性约束指定名字。
例: 创建与例5.8中相同的XS1表,并为主键命名。
CREATE TABLE XS1(
学号 varchar(6) NULL,
姓名 varchar(8) NOT NULL,
出生日期 datetime NULL www.2cto.com
CONSTRAINTPRIMARY_KEY_XS1 PRIMARY KEY(姓名));
说明:本例中给主键姓名分配了名字PRIMARY_KEY_XS1。
在定义完整性约束的时候应当尽可能地分配名字,以便在删除完整性约束的时候,可以更容易地引用它们。这意味着,表完整性约束比列完整性约束更受欢迎,因为不可能为后者分配一个名字。
9. DROP TABLE语句(删除)
如果使用一条DROP TABLE语句删除一个表,所有的完整性约束都自动被删除了。被参照表的所有外键也都被删除了,使用ALTER TABLE语句,完整性可以独立地被删除,而不用去删除表本身。删除的语法和删除索引的语法一样。
例: 删除表XS的主键。
ALTER TABLE XS DROP PRIMARY KEY;

作者 tianyazaiheruan