插入触发器之前MySQL之后的未知表
在创建触发器后,在表中插入行时遇到问题。我可以在触发前插入行,但在触发后无法插入。它给了我一个错误,即“LoadObservation”表不存在。有谁能帮我弄清楚为什么会这样插入触发器之前MySQL之后的未知表,mysql,Mysql,在创建触发器后,在表中插入行时遇到问题。我可以在触发前插入行,但在触发后无法插入。它给了我一个错误,即“LoadObservation”表不存在。有谁能帮我弄清楚为什么会这样 CREATE TABLE `LoadObservation` ( `sensor_id` int(11) NOT NULL, `oid` int(11) NOT NULL, `timestamp` datetime NOT NULL, `Weight` int(11) DEFAULT NULL, PRI
CREATE TABLE `LoadObservation` (
`sensor_id` int(11) NOT NULL,
`oid` int(11) NOT NULL,
`timestamp` datetime NOT NULL,
`Weight` int(11) DEFAULT NULL,
PRIMARY KEY (`sensor_id`,`oid`),
CONSTRAINT `LoadObservation_ibfk_1` FOREIGN KEY (`sensor_id`) REFERENCES `LoadSensor` (`sensor_id`)
)
DELIMITER $$
CREATE TRIGGER LoadMalfunction
BEFORE INSERT ON LoadObservation FOR EACH ROW
BEGIN
IF NEW.sensor_id = LoadObservation.sensor_id AND NEW.weight - LoadObservation.weight < 1000
THEN SET NEW.weight = LoadObservation.weight;
END IF;
END$$
DELIMITER ;
INSERT INTO LoadObservation(sensor_id, oid, Weight, timestamp) VALUES (350, 50001, 15000,
'2017-07-07 20:00:55');
创建表'LoadObservation`(
`传感器_id`int(11)不为空,
`oid`int(11)不为空,
`timestamp`datetime不为空,
`权重`int(11)默认为空,
主键(`sensor_id`、`oid`),
约束“LoadObservation\u ibfk\u 1”外键(`sensor\u id`)引用了`LoadSensor`(`sensor\u id`)
)
分隔符$$
产生触发负载故障
在为每行插入加载观察之前
开始
如果NEW.sensor_id=LoadObservation.sensor_id和NEW.weight-LoadObservation.weight<1000
然后设置NEW.weight=LoadObservation.weight;
如果结束;
完$$
定界符;
将值(350、50001、15000、,
'2017-07-07 20:00:55');
触发器主体中的LoadObservation
应该指什么?我的数据库中的LoadObservation表。这在您使用它的上下文中没有意义。您可以提问并解释触发器应该做什么。为了更好地理解每件新事物。权重是表LoadObservation中的新行,使用此触发器可以访问新行的数据。就像sticky bit所说的,这毫无意义,你们应该学习一些图托拉。在我添加任何其他内容之前,我将对触发器做更多的研究。谢谢你的帮助。