是否可以像我现在尝试的那样使用 where 语句?

Is it possible to use where statements like I am trying to right now?

我有 4 个 table 一个 "IN SHOP" table,它有一个变量 "How many games in shop",没有主键和 "Shop" 的 2 个伪造键,其中 prmary key 是 ID 和 "Game" 其中主键也是 ID。现在我有一个 table "Purchase",它有一个 ID 主键和 "Shop ID" 和 "Game ID" 的伪造键。现在我做了一个触发器,一旦一个新的 PURCHASe 被添加到“PURCAHSE table 然后每个游戏编号都会下降但是我希望它会在一个特定商店中的一个特定游戏中下降。现在我有:

CREATE TRIGGER delete AFTER INSERT ON purchase
BEGIN
    UPDATE In_SHOP
    SET HMGIS= HMGIS-1
    WHERE IN_SHOP.SHOP_ID = PURCHASE.SHOP_ID
    AND IN_SHOP.GAME_ID = PURCHASE.ID_GAME
END

您需要使用 inserted 视图:

CREATE TRIGGER delete AFTER INSERT ON purchase
BEGIN
    UPDATE In_SHOP
        SET HMGIS= HMGIS-1
        FROM inserted i
    WHERE IN_SHOP.SHOP_ID = i.SHOP_ID AND IN_SHOP.GAME_ID = i.ID_GAME;
END;

您专门询问了 WHERE 子句。这通常会写成 JOIN:

CREATE TRIGGER delete AFTER INSERT ON purchase
BEGIN
    UPDATE s
        SET HMGIS = HMGIS - 1
        FROM IN_SHOP s JOIN
             inserted i
             ON s.SHOP_ID = i.SHOP_ID AND s.GAME_ID = i.ID_GAME;
END;