如果条件允许,是否可以在触发器插入中将行移动到另一个表?

时间:2019-04-02 20:56:27

标签: mysql mariadb

如果要插入一个条件,我正在尝试移动一行。

使用“插入触发器之前”,我可以将文件复制到另一个表,但是不能删除原始表。 如果我抛出异常,它将使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的行,我希望将其移动到无效表中。

0 个答案:

没有答案