Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以编写此sql触发器?_Sql_Oracle_Triggers - Fatal编程技术网

是否可以编写此sql触发器?

是否可以编写此sql触发器?,sql,oracle,triggers,Sql,Oracle,Triggers,我有一个sql语句,可以从给定的模式中找到在纪录片中以最高租金演出的演员: film: film_id, rental_rate, film_actor: actor_id, film_id film_category: film_id, category_id category: category_id, name SELECT * FROM actor WHERE actor_id IN (SELECT actor_id FROM film_actor

我有一个sql语句,可以从给定的模式中找到在纪录片中以最高租金演出的演员:

film: film_id, rental_rate, 
film_actor: actor_id, film_id
film_category: film_id, category_id
category: category_id, name

SELECT *
FROM actor 
WHERE actor_id IN
        (SELECT actor_id
         FROM film_actor
         WHERE film_actor.actor_id = actor.actor_id
         AND film_id IN
                (SELECT film.film_id
                 FROM film, film_category, category
                 WHERE category.name = 'Documentary'
                 AND film.film_id = film_category.film_id
                 AND film_category.category_id = category.category_id
                 AND rental_rate = (SELECT MAX(rental_rate)
                                    FROM film, category, film_category
                                    WHERE category.name = 'Documentary'
                                    AND film.film_id = film_category.film_id
                                    AND film_category.category_id =  category.category_id)));
我被要求解释的一个问题是,是否有可能编写一个SQL语句来创建一个Oracle触发器,该触发器可以将未来由我在SQL语句中找到的演员主演的电影的租金提高10%。我真的想不出我为什么不能这样做的原因——除非我错过了一些东西,但我想听听关于这方面的第二个意见,如果可能的话,我怎么做

假设电影类别不会改变,你很可能只需要一次触发,只要你有
电影演员
。它的关键作用是实现
电影
演员
之间的多对多关系

但作为一个“附带的好处”,你知道每次你添加一部有演员的新电影,或者每次添加一个至少在你的一部电影中扮演过角色的演员时,这个表都会被触动。同样令人感动的是,你以某种方式更新了现有电影和现有演员之间的关联


因此,在本表中插入或更新后使用触发器可以达到目的。

如果租金最高的纪录片被错误分类,其纪录片类别被删除,该怎么办?如果电影的租金发生变化,那么租金最高的纪录片会发生变化,会发生什么情况?如果在纪录片中出现的多个演员以最高的出租率单独与未来的电影相关联,会发生什么?如果一个在纪录片中出演的租金最高的演员被错误地与另一部电影联系在一起,而这个联系被删除了怎么办,您如何将其与电影表中的租金变化直接联系起来?@user3603183您可以通过
film\u actor
上的触发器更新
film
。所以乍一看,这不应该是个问题。唯一复杂的事情可能是知道目标电影是否已经应用了+10%的租金。看一看广告。他们将允许您查询DB,以了解奖金是否已应用。试着在这方面做一点实验,如果你还需要一些帮助,请随意问另一个问题。啊,好的,我会尝试一下,谢谢你回答下面的问题