MySQL 5.0新特性之视图
Example: Constraint checks 示例:约束条件检查
MySQL支持NOT NULL的列约束,如:
CREATE TABLE t (
column1 INT NOT NULL,
column2 INT NOT NULL);
这并非MySQL约束的全部功能,但是还是不能做到只允许两列中其中一列可以为空或者让列1数值在1到5之间,又或者使列1在某些特殊情况下可以为空。不过,我们可以使用视图的定义通过下面的方法实现:
CREATE TABLE t (column1 INT, column2 INT);
CREATE VIEW v AS
SELECT column1, column2 FROM t
WHERE (column1 is NOT NULL OR column2 IS NOT NULL)
AND column1 BETWEEN 1 AND 5
WITH CHECK OPTION;
之后就可以通过对视图v进行插入或更新,达到我前面所需要的效果,在特殊情况下允许为空。