在Oracle中触发SQL - 验证?

时间:2015-04-09 22:22:49

标签: oracle triggers

大家好我正在尝试创建一个触发器来验证一些数据,我有一个名为'Events'的表,我需要做的是创建一个触发器,当你尝试添加一个事件时会给我一个错误在七月。

CREATE OR REPLACE TRIGGER concert_trigger AFTER INSERT ON CONCERT WHEN (event_date = 'July') BEGIN ALTER TABLE CONCERT ADD CONSTRAINT chk_CONCERT CHECK (event.date ='July') END;

这是我开始的触发器,我认为是要走的路,但我不确定这是否正确。

谢谢,Leprejohn

1 个答案:

答案 0 :(得分:1)

由于您的课堂作业需要使用触发器,因此您需要执行类似

的操作
CREATE OR REPLACE TRIGGER CONCERT_BI
  BEFORE INSERT ON CONCERT
  FOR EACH ROW
BEGIN
  IF TO_CHAR(EVENT_DATE, 'MON') = 'JUL' THEN
    RAISE_APPLICATION_ERROR(-20666, 'No concerts can be scheduled in July');
  END IF;
END CONCERT_BI;

这里我假设EVENT_DATE是实际的DATE而不是字符串;如果这是一个糟糕的猜测,那么适当地改变比较。

分享并享受。