如何约束MySQL的列?

时间:2009-11-25 10:01:20

标签: mysql constraints

像:

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

是否可以在MySQL中执行此操作?

2 个答案:

答案 0 :(得分:1)

Mysql不支持CHECK约束

您可以使用RAISE ERROR创建BEFORE UPDATE / INSERT TRIGGER

编辑:

引发错误
  

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;

答案 1 :(得分:0)

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

请参阅:MySQL and Check Constraints