SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
CREATE OR REPLACE TRIGGER check_customer_before_order -- Создаем или заменяем триггер BEFORE INSERT OR UPDATE ON Orders -- Триггер срабатывает перед INSERT или UPDATE в таблице Orders FOR EACH ROW -- Для каждой строки DECLARE customer_exists NUMBER; -- Объявляем переменную для хранения количества найденных клиентов BEGIN -- Проверяем, существует ли клиент перед вставкой или обновлением заказа. SELECT COUNT(*) INTO customer_exists -- Считаем количество клиентов с совпадающим номером телефона FROM Customer WHERE phone = :NEW.submittedBy; -- :NEW.submittedBy - значение submittedBy в строке, которая добавляется или изменяется -- Если клиент не существует, генерируем исключение. IF customer_exists = 0 THEN RAISE_APPLICATION_ERROR(-20001, 'Клиент с номером телефона ' || :NEW.submittedBy || ' не существует.'); -- Выбрасываем исключение с сообщением об ошибке END IF; END;

Stuck with a problem? Got Error? Ask ChatGPT!

Copy Clear