Does MySQL support check constraint? [duplicate]

半世苍凉 提交于 2019-12-01 05:24:51

问题


Does MySQL support check constraint?

I am able to execute the following script in MySQL without error.

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

But it is not reflected if I query:

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

回答1:


So far as I can tell from past usage and the manual, MySQL only supports PRIMARY KEY, UNIQUE and FOREIGN KEY constraints, and these only if the table is an InnoDB table. Other storage types accept these constraints and store them after a fashion but do not enforce them. The kind of constraint you mention is not enforced; there appears to be some discussion on the MySQL website about it.




回答2:


It is really frustrating not being able to enforce rules you want on your tables, rows and columns. The numbers of Engines for tables also doesn't make things easier. CHECK, TRANSACTION, FULLTEXT INDEX, FOREIGN KEY etc missing in some engines and present in some engines



来源:https://stackoverflow.com/questions/3414421/does-mysql-support-check-constraint

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!