我有一个小问题。我有 2 张桌子:
CREATE TABLE park(parkcode CHAR(5), name CHAR(15));
CREATE TABLE ticket(date_purchase_ticket TIMESTAMP, parkcode CHAR(5));
我想要做的是创建一个触发器,当我想从 table 中删除一行时park
,触发器首先查看在某个日期之后是否有任何购买。只有在某个日期之后没有购买时,您才能从表中删除该行park
。
您需要考虑创建一个过程,当您想从中删除一行时可以调用该过程park
。
类似于以下内容:
DELIMITER //
CREATE PROCEDURE DeleteIfNoPurchases (IN code CHAR(5),
IN date TIMESTAMP)
BEGIN
IF (SELECT MAX(date_purchase_ticket)
FROM ticket
WHERE parkcode = code) < date THEN
DELETE FROM park WHERE parkcode = code;
END IF;
END//
DELIMITER ;
然后,您可以使用要删除的代码和要测试的时间戳来调用它。
您无法阻止使用触发器删除行。