我有一个小问题。我有2张桌子:
CREATE TABLE park(parkcode CHAR(5), name CHAR(15));
CREATE TABLE ticket(date_purchase_ticket TIMESTAMP, parkcode CHAR(5));
我要做的是创建一个触发器,当我想从表park
中删除一行时,触发器首先查看在某个特定日期之后是否有任何购买。并且只有在特定日期之后没有购买时,您才能从表park
中删除该行。
答案 0 :(得分:1)
当您想要从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 ;
然后,您可以使用要删除的代码和要测试的时间戳来调用它。
答案 1 :(得分:0)
您无法阻止使用触发器删除行。