【发布时间】:2018-01-05 11:57:55
【问题描述】:
我有以下表格:
Piers(PierID, Name, NumOfShips)
Ships(ShipID, Name)
Docking(PierID, ShipID)
我需要实现一个触发器,该触发器将计算每个码头包含多少艘船,并将结果插入NumOfShips。
【问题讨论】:
-
到目前为止你得到了什么?
我有以下表格:
Piers(PierID, Name, NumOfShips)
Ships(ShipID, Name)
Docking(PierID, ShipID)
我需要实现一个触发器,该触发器将计算每个码头包含多少艘船,并将结果插入NumOfShips。
【问题讨论】:
您需要一个AFTER UPDATE 触发器
CREATE OR REPLACE TRIGGER change_on_Ships
AFTER UPDATE ON Ships
BEGIN
UPDATE Piers
SET NumOfShips = (
SELECT count(1) FROM Docking d
WHERE d.PierID = (
SELECT PierID FROM Docking where ShipId = :NEW.ShipID
)
)
WHERE PierID = (select PierID from Docking where ShipID = :NEW.ShipID );
END;
希望对你有帮助
【讨论】: