小编sol*_*att的帖子

检查约束以确保日期不是将来?

我正在尝试创建一个表来记录对另一个表的估计小时数所做的更改.整个数据库是一个项目管理系统,用于公司为其员工分配工作并为客户创建发票.

目前我有:

CREATE TABLE task_history
(
    task_history_id         NUMBER(5),
    previous_est_hours      NUMBER(3,1),
    change_date         DATE,
    reason_for_change       VARCHAR2(50),
    task_id             NUMBER(5),

CONSTRAINT TASKHIST_TASKHISTID_PK   PRIMARY KEY (task_history_id),
CONSTRAINT TASKHIST_TASKID_FK       FOREIGN KEY (task_id) REFERENCES task(task_id),
CONSTRAINT TASKHIST_TASKID_NN CHECK (task_id IS NOT NULL),
CONSTRAINT TASKHIST_CHANGEDATE_NONFUTURE CHECK (change_date <= sysdate)
);
Run Code Online (Sandbox Code Playgroud)

change_date不能是未来的日期,必须是今天或过去.最后一个检查约束是问题.据我所知,你不能使用sysdate,因为我忘记了一个原因,但你做不到.我也尝试了GETDATE()以及我在网上找到的所有其他变种.我怎么能做这个大概简单的任务呢?

sql oracle plsql

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

oracle ×1

plsql ×1

sql ×1