Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular

SQLize.online is a free online SQL environment for quickly running, experimenting with and sharing code. You can run your SQL code on top of the most popular RDBMS including MySQL, MariaDB, SQLite, PostgreSQL, Oracle and Microsoft SQL Server.

Copy Format Clear
-- Изменяем разделитель инструкций для создания триггеров DELIMITER // -- Триггер для автоматического уменьшения количества книг на складе после оформления заказа CREATE TRIGGER decrease_book_count AFTER INSERT ON Orders FOR EACH ROW BEGIN UPDATE Books SET b_count = b_count - NEW.o_number WHERE book_ID = NEW.o_book_ID; END // -- Триггер для проверки положительной стоимости товара перед обновлением CREATE TRIGGER check_positive_price BEFORE UPDATE ON Books FOR EACH ROW BEGIN IF NEW.b_price < 0 THEN SET NEW.b_price = 0; END IF; END // -- Возвращаем разделитель инструкций к значению по умолчанию DELIMITER ; -- Пример использования триггера decrease_book_count -- Установка значения по умолчанию для количества на складе (если таблица Books и запись существуют) UPDATE Books SET b_count = 10 WHERE book_ID = 1; -- Проверка текущего количества на складе SELECT book_ID, b_name, b_count FROM Books WHERE book_ID = 1; -- Добавление нового заказа, который уменьшит количество книг на складе INSERT INTO Orders (o_c_ID, o_e_ID, o_placed_date, o_execution_date, o_amount, o_is_completed, o_book_ID, o_number) VALUES (1, 1, NOW(), NOW(), 100.00, 0, 1, 3); -- Проверка количества книг после добавления заказа SELECT book_ID, b_name, b_count FROM Books WHERE book_ID = 1; -- Пример использования триггера check_positive_price -- Попытка установить отрицательную цену (будет заменена на 0) UPDATE Books SET b_price = -50 WHERE book_ID = 1; -- Проверка результата обновления цены SELECT book_ID, b_name, b_price FROM Books WHERE book_ID = 1; -- Удаление триггеров (если необходимо) DROP TRIGGER IF EXISTS decrease_book_count; DROP TRIGGER IF EXISTS check_positive_price;

Stuck with a problem? Got Error? Ask ChatGPT!

Copy Clear