Consider a table Orders with columns OrderID and Status. An AFTER INSERT trigger updates the Status to 'Processed' after a new order is inserted.
What will be the Status of the newly inserted order immediately after the insert completes?
CREATE TABLE Orders (OrderID INT PRIMARY KEY, Status VARCHAR(20)); CREATE TRIGGER trg_AfterInsert AFTER INSERT ON Orders FOR EACH ROW BEGIN UPDATE Orders SET Status = 'Processed' WHERE OrderID = NEW.OrderID; END; INSERT INTO Orders (OrderID, Status) VALUES (1, 'Pending'); SELECT Status FROM Orders WHERE OrderID = 1;
Think about when AFTER triggers run in relation to the insert operation.
AFTER INSERT triggers run after the row is inserted. The trigger updates the Status to 'Processed', so the final value is 'Processed'.
Choose the correct statement about when an AFTER UPDATE trigger runs in a database.
AFTER triggers run after the triggering event completes.
AFTER UPDATE triggers execute after the row has been updated successfully.
Given the following trigger, why does it fail to delete related rows in OrderDetails after deleting from Orders?
CREATE TRIGGER trg_AfterDelete AFTER DELETE ON Orders FOR EACH ROW BEGIN DELETE FROM OrderDetails WHERE OrderID = OLD.OrderID; END; DELETE FROM Orders WHERE OrderID = 10;
Consider if AFTER DELETE triggers can access OLD values and perform deletes.
AFTER DELETE triggers can access OLD values and perform actions like deleting related rows. The syntax is correct and the trigger will delete related rows.
Which option correctly fixes the syntax error in this AFTER UPDATE trigger?
CREATE TRIGGER trg_AfterUpdate AFTER UPDATE ON Employees FOR EACH ROW BEGIN IF NEW.Salary > OLD.Salary THEN UPDATE Employees SET Status = 'Promoted' WHERE EmployeeID = NEW.EmployeeID; END IF; END;
Check the IF statement syntax in SQL triggers.
In SQL triggers, IF statements require THEN after the condition. Missing THEN causes syntax error.
An AFTER INSERT trigger updates a column Status to 'Active' for every new row. How can you optimize the trigger to avoid updating rows that already have Status = 'Active'?
Think about how to limit updates to only necessary rows.
Adding a WHERE clause in the UPDATE statement inside the trigger avoids unnecessary updates and improves performance.