没有WHERE语句的触发器

时间:2016-12-06 10:47:51

标签: mysql sql

我有一个简单的数据库,其中包含有关俱乐部,乐队及其音乐会的信息。我问题中最重要的2个表格如下:

Band(Name,AmountOfMembers)

音乐会(ClubName,ClubAdress,BandName,AmountOfMembers,Date)

当我们使用有关乐队的新信息更新Concert表时(我们更改乐队X的成员数量),我需要编写一个触发器,并更新Band表以反映变化。

到目前为止,我设法写了这个:

CREATE TRIGGER updateTrigger ON Concert
INSTEAD OF UPDATE   
AS
BEGIN

    IF UPDATE (AmountOfMembers)

    BEGIN

      UPDATE Band
      SET AmountOfMembers=(SELECT DISTINCT AmountOfMembers FROM inserted)
      WHERE Name=(SELECT DISTINCT BandName FROM inserted)


      UPDATE Concert
      SET AmountOfMembers=(SELECT DISTINCT AmountOfMembers FROM inserted)
      WHERE BandName=(SELECT DISTINCT BandName FROM inserted)
    END

END

此触发器在大多数情况下都能正常工作,但在测试时我意识到它无法使用查询:(处理此类查询是分配的一部分)

UPDATE Concert 
SET AmountOfMembers='50'

我写的其他触发器也无法处理这种情况,但我在这里跳过它们,因为它们看起来都很相似。

这是课程作业的一部分,(我们只是开始使用sql所以它并不复杂,我知道)所以我并没有要求我准备好代码来复制-paste,只是一些关于如何处理这个问题的一般提示。

非常感谢任何帮助。

0 个答案:

没有答案
相关问题