Complete the code to create a DELETE trigger that activates before a row is deleted.
CREATE TRIGGER before_delete_trigger BEFORE [1] ON employees FOR EACH ROW BEGIN END;The trigger must activate before DELETE to run when a row is deleted.
Complete the code to reference the old row's id in the DELETE trigger.
CREATE TRIGGER log_delete BEFORE DELETE ON employees FOR EACH ROW BEGIN INSERT INTO deleted_log (emp_id) VALUES ([1].id); END;In DELETE triggers, OLD refers to the row being deleted.
Fix the error in the DELETE trigger code by choosing the correct timing keyword.
CREATE TRIGGER audit_delete [1] DELETE ON employees FOR EACH ROW BEGIN INSERT INTO audit_log VALUES (OLD.id, NOW()); END;For logging after a row is deleted, the trigger timing should be AFTER DELETE.
Fill both blanks to create a DELETE trigger that prevents deletion if the employee is a manager.
CREATE TRIGGER prevent_manager_delete BEFORE [1] ON employees FOR EACH ROW BEGIN IF OLD.role = 'manager' THEN SIGNAL SQLSTATE '[2]' SET MESSAGE_TEXT = 'Cannot delete a manager'; END IF; END;
The trigger must be BEFORE DELETE to check before deletion. SQLSTATE '45000' is a generic user-defined error code.
Fill all three blanks to create a DELETE trigger that logs deleted employee name and deletion time.
CREATE TRIGGER log_employee_delete AFTER [1] ON employees FOR EACH ROW BEGIN INSERT INTO delete_log (name, deleted_at) VALUES ([2].name, [3]()); END;
The trigger runs AFTER DELETE. OLD refers to the deleted row. NOW() returns the current timestamp.