Prevent deleting paid orders
SQL
Medium
0 views
Problem Description
Block deleting an order if any payment exists for that order. Use a BEFORE DELETE trigger on Orders and check Payments.
Output Format
Trigger created
Constraints
MySQL-style SIGNAL + EXISTS
Official Solution
CREATE TRIGGER trg_block_delete_paid BEFORE DELETE ON Orders FOR EACH ROW BEGIN IF EXISTS (SELECT 1 FROM Payments p WHERE p.order_id = OLD.order_id) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='Cannot delete paid order'; END IF; END;
Solutions (0)
No solutions submitted yet. Be the first!
No comments yet. Start the discussion!