2010-08-05 106 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等在某些發動機中缺失並存在於某些發動機中