触发器可以在数据库中自动执行指定的操作,根据需求来编写触发器。在本例中,我们需要编写一个触发器,以确保所有对Goods表的更改都被保存。
以下是用于创建这个触发器的SQL代码:
CREATE TRIGGER goods_trigger AFTER UPDATE,DELETE ON Goods FOR EACH ROW BEGIN INSERT INTO Goods_log (id, Name, description, price, action) VALUES (OLD.id, OLD.Name, OLD.description, OLD.price, 'deleted') WHERE OLD.id IS NOT NULL;
INSERT INTO Goods_log (id, Name, description, price, action)
VALUES (NEW.id, NEW.Name, NEW.description, NEW.price, 'updated')
WHERE NEW.id IS NOT NULL;
END;
触发器将在每次更新或删除操作后执行,并将在一个名为Goods_log的日志表中添加一条日志。每个日志条目将包括商品的ID、名称、描述、价格和操作类型。此操作类型将告知我们是已更新商品还是已删除商品。