我需要创建一个触发器来跟踪电影从 Blockbuster 这样的公司租借的次数。我需要一个单独的触发器来进行插入、删除和更新。
跟踪此租用次数的列称为 num_rentals,其数据类型为 int。此列是包含 *movie_id (pk*)、movie_title、release_year、movie_description 和 num_rentals的Movies表的一部分。customer_rentals表有 item_rental_id(pk)、*movie_id(fk*)、customer_id。
我在这里搜索并找到了一个类似的线程,并尝试使用提供的答案,但无济于事。我执行了以下字符串,没有任何错误,但是当我将数据插入到 Movie 或 Customer_rentals 表中时,我发现 num_rentals 列没有变化。我究竟做错了什么?
CREATE TRIGGER dbo.tr_num_rented_insert ON dbo.customer_rentals
FOR INSERT
AS
BEGIN
UPDATE m
SET num_rentals = num_rentals + 1
FROM dbo.movies AS m
INNER JOIN inserted AS i ON m.movie_id = i.movie_id ;
END
我稍后将 num_rentals 字段添加到表中,并且我还需要知道如何将当前在 Movies 表中的所有记录的字段值初始化为零。
我想尽可能多地理解这一点,因此非常感谢您的帮助。我读到可能有更有效的方法来管理此类数据,但这是我的导师想要的方式。先感谢您!