是否可以在 Db2 表中包含日期检查?
我尝试过:
CREATE TABLE customers (
id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
email VARCHAR(60) NOT NULL UNIQUE,
-- etc
dob date, -- Db2: CHECK (dob < current_timestamp - interval '18 years'), fails
-- etc
);
我已经能够在其他 DBMS 中执行此操作;例如,上面注释掉的代码适用于 PostgreSQL。但是,当我在 Db2 中尝试时,我收到如下消息:
SQL 错误 [42621]:使用“current_date”定义的检查约束或生成的列无效
也许有解决方法?
您不能在约束中使用
current_timestamp
或。这是有记录的:current_date
check
您可以使用
before
触发器来实现这样的验证。