如果要插入一个条件,我正在尝试移动一行。
使用“插入触发器之前”,我可以将文件复制到另一个表,但是不能删除原始表。 如果我抛出异常,它将使secon表中的插入内容退回。
这是一个MariaDB数据库,我无权访问该代码,因此需要在数据库中进行编辑。 我已经测试了插入触发器中的“之前”或“之后”
CREATE TRIGGER `DisableByAccuracy` AFTER INSERT ON `tc_positions` FOR EACH ROW
IF NEW.accuracy >= 500 THEN
BEGIN
SET NEW.valid = 0;
INSERT INTO tc_positions_invalid (id, valid, latitude, longitude, accuracy) VALUES (NEW.id, NEW.valid, NEW.latitude, NEW.longitude, NEW.accuracy);
DELETE FROM tc_positions WHERE tc_positions.id = NEW.id;
END;
END IF
如果它试图写入精度超过500的行,我希望将其移动到无效表中。