MySQL是否支持检查约束?

时间:2010-08-05 11:58:18

标签: mysql check-constraints

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';

2 个答案:

答案 0 :(得分:6)

就我从过去的用法和手册中可以看出,MySQL只支持PRIMARY KEY,UNIQUE和FOREIGN KEY约束,并且只有当表是InnoDB表时才支持。其他存储类型接受这些约束并在时尚之后存储它们但不强制执行它们。你提到的那种约束没有强制执行;在MySQL网站上似乎有一些关于它的讨论。

答案 1 :(得分:2)

如果无法在表,行和列上强制执行您想要的规则,那真是令人沮丧。表格的引擎数量也不会使事情变得更容易。某些引擎中缺少CHECK,TRANSACTION,FULLTEXT INDEX,FOREIGN KEY等,并存在于某些引擎中