对触发器用其来实现数据完整性举出两个业务规则例子并使用触发器加以实现。要求--个是AFTER类触发器一个是BEFORE类触发器
业务规则例子1:在订单表中,订单状态为“已完成”(status=2)时,不能再次修改订单信息。 使用AFTER类触发器实现:
CREATE TRIGGER trg_order_status AFTER UPDATE ON order_table FOR EACH ROW BEGIN IF NEW.status = 2 AND OLD.status <> 2 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Order status cannot be changed after completion.'; END IF; END;
业务规则例子2:在产品表中,产品价格不能低于成本价。 使用BEFORE类触发器实现:
CREATE TRIGGER trg_product_price BEFORE UPDATE ON product_table FOR EACH ROW BEGIN IF NEW.price < NEW.cost_price THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Product price cannot be lower than cost price.'; END IF; END
原文地址: http://www.cveoy.top/t/topic/fmAF 著作权归作者所有。请勿转载和采集!