删除时触发SQL

时间:2012-06-07 21:09:04

标签: mysql triggers

我有一个小问题。我有2张桌子:

CREATE TABLE park(parkcode CHAR(5), name CHAR(15));

CREATE TABLE ticket(date_purchase_ticket TIMESTAMP, parkcode CHAR(5));

我要做的是创建一个触发器,当我想从表park中删除一行时,触发器首先查看在某个特定日期之后是否有任何购买。并且只有在特定日期之后没有购买时,您才能从表park中删除该行。

2 个答案:

答案 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)

您无法阻止使用触发器删除行。