如何约束MySQL的列?

如何约束MySQL的列?,mysql,constraints,Mysql,Constraints,比如: 在MySQL中可以做到这一点吗?简而言之:MySQL不支持检查约束,尽管为了与其他引擎兼容,它会解析这些约束(但会忽略它们) 请参阅:Mysql不支持检查约束 您可以使用RAISE ERROR在更新/插入触发器之前创建触发器 编辑:使用 设置new.score=1/0 诸如此类: create table test( score integer unsigned between 1 and 100 ... ); 在test1上插入之前创建触发器testref 每行开始 如果NE

比如:


在MySQL中可以做到这一点吗?

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


请参阅:

Mysql不支持检查约束

您可以使用RAISE ERROR在更新/插入触发器之前创建触发器

编辑:使用

设置new.score=1/0

诸如此类:

create table test(
    score integer unsigned between 1 and 100
...
);
在test1上插入之前创建触发器testref
每行开始
如果NEW.score<1或NEW.score>100
设置NEW.score=1/0;
结束;

Mysql不支持CHECK CONSTRAINT,它会解析它,你会认为它是合法的,但它不会强制执行
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;