2010-08-05 105 views
4

MySQL是否支持检查约束?MySQL是否支持检查约束?

我能够在MySQL中执行下面的脚本,没有错误。

ALTER TABLE EMP_DB_DESIGN_EXCEL ADD (
    CONSTRAINT CHK_EMP_IS_ACTIVE CHECK (IS_ACTIVE IN ('Y','N'))); 

但是,如果我查询它并没有反映:

SELECT * FROM information_schema.TABLE_CONSTRAINTS T where t.table_name='EMP_DB_DESIGN_EXCEL'; 

回答

6

到目前为止,我可以从过去的使用和手动告诉,MySQL只支持主键,唯一和外键约束,而这些只有在表是InnoDB表时。其他存储类型接受这些约束并将它们存储在时尚之后,但不强制执行它们。你提到的那种约束不是强制的;似乎在MySQL网站上有一些关于它的讨论。

2

真的很令人沮丧,无法在您的表,行和列上执行您想要的规则。表格引擎的数量也不会让事情变得更容易。 CHECK,TRANSACTION,FULLTEXT INDEX,FOREIGN KEY等在某些发动机中缺失并存在于某些发动机中