Привет, ребята, я пытаюсь создать триггер для проверки некоторых данных, у меня есть таблица под названием «События», и мне нужно создать триггер, который даст мне ошибку при попытке добавить событие в июль.Trigger in oracle SQL - проверка?
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
Во-первых, почему вы хотите использовать триггер, а не ограничение? Если вы можете использовать ограничение, это почти всегда полезно сделать, а не использовать триггер. Во-вторых, ваш триггер пытается создать ограничение - это не имеет смысла. Ограничение создается один раз во время установки. Триггер запускается каждый раз, когда происходит «INSERT». Было бы бессмысленно создавать ограничение каждый раз, когда происходит «INSERT». Каков тип данных столбца 'event_date'? Это «дата»? «Varchar2»? Что-то другое? –
Привет, Джастин, для модуля, который я делаю, и они хотят, чтобы вы использовали триггеры, не уверен, почему, но ограничения кажутся гораздо лучшей идеей сделать это при создании данных или вводе типа данных для столбца event_date является дата – leprejohn
«Модуль» означает «домашнее задание» правильно? Если вы выполняете домашнее задание на триггеры, я предполагаю, что в книге будет раздел, в котором обсуждается разница между триггерами уровня и триггерами на уровне инструкций. Для проверки достоверности данных вам понадобится триггер уровня, заголовок, который вы разместили здесь, для триггера уровня инструкций. Я предполагаю, что книга также охватывает некоторые вводные концепции PL/SQL - вам понадобится инструкция 'IF', вы хотите использовать' to_char' или 'extract', чтобы получить месяц из' event_date', и вы «Я хочу использовать' raise' или 'raise_application_error' для исключения исключения –