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 の Web サイトでいくつかの議論が行われているようです。

于 2010-08-05T12:05:29.593 に答える
2

テーブル、行、列に必要なルールを適用できないのは本当にイライラします。テーブルのエンジンの数も、物事を容易にするものではありません。CHECK、TRANSACTION、FULLTEXT INDEX、FOREIGN KEY などが一部のエンジンで欠落し、一部のエンジンで存在する

于 2012-05-24T13:18:33.093 に答える