Я строю триггер действовать до вставки, чтобы сделать две вещи: - отвергаем заданные значения (работы) - обновление нулевые значения (не могу заставить его работать)Trigger для обновления содержимого вставки
таблица триггера выглядит следующим образом:
Хотя сам триггер выглядит следующим образом:
CREATE OR REPLACE TRIGGER name_a_i
BEFORE INSERT ON krasnoludki FOR EACH ROW
DECLARE
v_count NUMBER := 0;
BEGIN
IF initcap(:new.name) LIKE 'Adrian%' THEN
raise_application_error(-20001, 'Name starting with Adrian is prohibited');
ELSE
IF :new.name = '' OR :new.name IS NULL THEN
SELECT count(*) INTO v_count
FROM peeps
WHERE initcap(name) LIKE 'No_%';
UPDATE peeps
SET name = concat('No_', v_count + 1)
WHERE name = :new.name;
END IF;
END IF;
END name_a_i;
Все компилируется, но когда я положил null значение как имя не обновляет значение null до No_%.
Пожалуйста, скажите мне, что я делаю неправильно?
Это Oracle DB.
Да, это так, большое вам спасибо, но если бы вы могли объяснить мне логику этого, так как я хочу знать, как она функционирует не только как это сделать. Итак: NEW.name является указателем и до конца триггера я могу перетасовать его значение, как я хочу? – plomien