不能改变Mysql上的表约束

时间:2015-12-30 16:28:31

标签: php mysql

任何人都知道,我尝试过多次在我的mysql sql中使用alter table constraint。

所以我想改变表约束以在性别列中添加验证:

alter table jewerly 
add constraint checkGender CHECK(Gender='Male' OR Gender='female');

是吗?我不知道是什么问题,但它总是在我的mysql上返回空结果。为什么?

我从另一个线程读取,它说如果返回空结果则是正常的。

但我尝试导出我的sql,我看到我的sql上没有添加任何禁令查询。

有谁知道这个问题?

==

注意:它标记为重复问题,但最后一个帖子只有sollution用于检查性别约束,如果我想添加另一个约束怎么样?添加后,约束总是丢失。

2 个答案:

答案 0 :(得分:0)

MySQL没有支持检查约束,这就是为什么即使在SHOW CREATE TABLE上也看不到它

答案 1 :(得分:0)

处理此问题的一种方法是创建性别表(ID,性别)并使用珠宝表上的外键来引用性别表。

将一个gender_id列添加到珠宝表中,然后在珠宝表上创建一个外键。

ALTER TABLE jewelry ADD CONSTRAINT fk_jewelry_gender 
FOREIGN KEY (gender_id) REFERENCES gender (id) ON DELETE NO ACTION ON UPDATE CASCADE