如何限制MySQL的列?

问题描述:

喜欢:如何限制MySQL的列?

create table test(
    score integer unsigned between 1 and 100 
... 
); 

是否有可能做到这一点在MySQL?

简而言之:MySQL不支持CHECK约束,尽管为了与其他引擎兼容,它会解析它们(但忽略它们)。

参见:MySQL and Check Constraints

+0

MySQL不支持检查约束 – 2009-11-25 10:12:27

+0

它会分析它,你会认为它是合法的,但它不会enfoce它 – 2009-11-25 10:17:17

MySQL不支持CHECK约束

您可以创建之前引发错误UPDATE/INSERT触发器

编辑:引发错误与

SET new.score = 1/0;

类似的东西:

CREATE TRIGGER testref BEFORE INSERT ON test1 
    FOR EACH ROW BEGIN 
    IF NEW.score < 1 OR NEW.score > 100 
       SET NEW.score = 1/0; 
    END; 
+0

例如见http://forums.mysql.com/read.php?136,152474,240479#msg-240479 – jensgram 2009-11-25 10:14:07