我有4个表“IN SHOP”表,其中有一个变量“店内有多少游戏”,没有主键和2个forgein键的“Shop”,其中prmary键是ID,“Game”是主键也是身份证。现在我有一个表“购买”,它有一个主键ID和伪装键“商店ID”和“游戏ID”。现在我想知道是否有办法自动更新每次购买的“IN SHOP”表变量“多少游戏”。因此,如果有新购买,游戏数量减少1,如果销售被删除,则数量增加1.我试过
alter table "IN SHOP"
add constraint "FK_IN SHOP_REFERENCE_Purchase" foreign key ("GAME ID")
references TEHING ("GAMES ID")
on update "HMGIS" = "HMGIS" -1
on delete "HMGIS" = "HMGIS" +1;
答案 0 :(得分:1)
这是一个触发器的示例,您可以使用该触发器在插入或删除操作时更新金额。
CREATE TRIGGER UpdateAmount ON Purchase
FOR INSERT,DELETE
AS
BEGIN
IF EXISTS (SELECT 1 FROM inserted)
BEGIN
-- I am an insert
UPDATE IN_SHOP
SET HMGIS = HMGIS-1; -- use the count of the rows in inserted table for bulk insert
END
ELSE
BEGIN
-- I am a delete
UPDATE IN_SHOP
SET HMGIS = HMGIS+1; -- use the count of the rows in deleted table for bulk delete
END
END
这是一个问题,其中解释了如何通过插入或删除来确定是否触发了触发器:https://dba.stackexchange.com/questions/137862/check-if-the-trigger-was-fired-by-insert-or-delete?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa。