我之前已经问过这个问题,我想详细说明一下。
Triggers to connect multiple tables
我有以下触发器(有点像我之前问过的那个):
CREATE TRIGGER trigger_test1
BEFORE INSERT ON test1
FOR EACH ROW
SET NEW.OriginIndex = (SELECT index1 FROM cities WHERE city = NEW.Origin),
NEW.DestinationIndex = (SELECT index1 FROM cities WHERE city =NEW.Destination);
这部分效果很好。现在我想将OriginIndex和DestinationIndex相乘并将其存储在另一列中(假设为'Multiplication')。
我这样做了:
CREATE TRIGGER trigger_test1
BEFORE INSERT ON test1
FOR EACH ROW
SET NEW.OriginIndex = (SELECT index1 FROM cities WHERE city = NEW.Origin),
NEW.DestinationIndex = (SELECT index1 FROM cities WHERE city =NEW.Destination),
NEW.Multiplication = (SELECT NEW.OriginIndex*NEW.DestinationIndex);
这给出了一个错误'这个版本的MySQL还不支持'多个触发器,具有相同的一个表的动作时间和事件''。
我该怎么处理这个问题?
答案 0 :(得分:0)
我认为你可以使用
DELIMITER //
CREATE TRIGGER trigger_test1
BEFORE INSERT ON test1
BEGIN
FOR EACH ROW
SET NEW.OriginIndex = (SELECT index1 FROM cities WHERE city = NEW.Origin);
SET NEW.DestinationIndex = (SELECT index1 FROM cities WHERE city =NEW.Destination);
SET NEW.Multiplication = (NEW.OriginIndex*NEW.DestinationIndex);
END//
我希望这有帮助。