Introduction
Triggers help automate actions in the database when data changes, but using them carefully avoids problems.
CREATE TRIGGER trigger_name BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name FOR EACH ROW BEGIN -- trigger logic here END
CREATE TRIGGER update_timestamp BEFORE UPDATE ON employees FOR EACH ROW BEGIN SET NEW.last_modified = NOW(); END
CREATE TRIGGER prevent_negative_salary BEFORE UPDATE ON employees FOR EACH ROW BEGIN IF NEW.salary < 0 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Salary cannot be negative'; END IF; END
CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(50), salary DECIMAL(10,2), last_modified TIMESTAMP ); DELIMITER $$ CREATE TRIGGER update_last_modified BEFORE UPDATE ON employees FOR EACH ROW BEGIN SET NEW.last_modified = NOW(); END$$ DELIMITER ; INSERT INTO employees (id, name, salary) VALUES (1, 'Alice', 5000); UPDATE employees SET salary = 5500 WHERE id = 1; SELECT id, name, salary, last_modified FROM employees WHERE id = 1;
CREATE TRIGGER trg BEFORE INSERT ON employees FOR EACH ROW BEGIN SET NEW.salary = NEW.salary * 1.1; END;
CREATE TRIGGER trg AFTER UPDATE ON employees FOR EACH ROW BEGIN UPDATE employees SET salary = salary * 1.05 WHERE id = NEW.id; END;
orders table without slowing down the delete operation. Which trigger design is best?Pass the test and this pattern moves unknown