无法使此触发器工作[SQL Oracle]
我有一个传感器表,如果1值>40进入Medicao表,它应该接收一个带有警报的字符串。有什么想法吗?因为你还没有说到底出了什么问题,我有点猜测,但我可以看到两个直接的潜在问题 通常情况下,您不应该再次查询同一个表,因为您可能会遇到变异表错误。子查询中也没有条件,因此可能会返回多行,并且子查询会返回多行错误 假设您执行该子查询是为了从受影响的行中获取ID值,因此请使用:NEW伪行:无法使此触发器工作[SQL Oracle],sql,oracle,triggers,Sql,Oracle,Triggers,我有一个传感器表,如果1值>40进入Medicao表,它应该接收一个带有警报的字符串。有什么想法吗?因为你还没有说到底出了什么问题,我有点猜测,但我可以看到两个直接的潜在问题 通常情况下,您不应该再次查询同一个表,因为您可能会遇到变异表错误。子查询中也没有条件,因此可能会返回多行,并且子查询会返回多行错误 假设您执行该子查询是为了从受影响的行中获取ID值,因此请使用:NEW伪行: CREATE TRIGGER Alerta_Trig BEFORE INSERT OR UPDATE OF
CREATE TRIGGER Alerta_Trig
BEFORE INSERT OR UPDATE OF Valor ON Medicao
FOR EACH ROW
WHEN (NEW.VALOR > 40)
BEGIN
UPDATE SENSOR
SET ALERTA = 'Alerta laranja'
WHERE SENSOR_ID=(SELECT SENSOR_SENSOR_ID FROM MEDICAO);
END;
你有什么错误或错误行为?谢谢你的帮助,我遇到了问题:NEW.SENSOR\u SENSOR\u ID。我真的很感激!
CREATE TRIGGER Alerta_Trig
BEFORE INSERT OR UPDATE OF Valor ON Medicao
FOR EACH ROW
WHEN (NEW.VALOR > 40)
BEGIN
UPDATE SENSOR
SET ALERTA = 'Alerta laranja'
WHERE SENSOR_ID = :NEW.SENSOR_SENSOR_ID;
END;