【发布时间】:2015-04-10 15:50:20
【问题描述】:
大家好,我在触发器方面有点菜鸟,所以我只是在寻找一些关于如何执行跟随触发器的建议。
我创建了一个触发器,如果有人在办公时间删除记录,它会抛出错误消息,但是我想创建另一个使用 SYSDATE 的触发器,它不会删除今天和未来日期的记录。
我在考虑可能使用 >=SYSDATE 但我不确定这是否是有效的 sql 语句。
CREATE OR REPLACE TRIGGER records_delete
BEFORE DELETE
ON RECORDS FOR EACH ROW
BEGIN
IF TO_CHAR(SYSDATE, 'HH24MI') NOT >= sysdat
RAISE_APPLICATION_ERROR(-20669, 'You can not delete current or future records');
END IF;
END records_delete;
谢谢你,小妖精
【问题讨论】:
-
您好,对不起,我正在使用 orcale
-
您当然可以使用带有日期的常规比较运算符,但如果您不分享您的代码或错误消息或描述不当行为,就不可能说出您的触发器出了什么问题。
-
这里是代码:
CREATE OR REPLACE TRIGGER records_delete BEFORE DELETE ON RECORDS FOR EACH ROW BEGIN IF TO_CHAR(SYSDATE, 'HH24MI') NOT >= sysdat RAISE_APPLICATION_ERROR(-20669, 'You can not delete current or future records'); END IF; END records_delete;
标签: sql oracle triggers sysdate