4

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

2 回答 2

6

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

于 2010-08-05T12:05:29.593 回答
2

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

于 2012-05-24T13:18:33.093 回答