我正在构建数据版本控制系统,每次将新行添加到版本表时我都需要增加版本号,但是它会递增一次然后停止:
DELIMITER |
CREATE TRIGGER trigger2 AFTER UPDATE ON something
FOR EACH ROW
BEGIN
IF NEW.updated_at <> OLD.updated_at THEN
INSERT INTO versions_something (
`id`,
`some_id`,
`version`,
`title`,
`description`,
`created_at`,
`updated_at`
) VALUES (
null,
NEW.id,
1,
NEW.title,
NEW.description,
NOW(),
NOW()
);
END IF;
UPDATE
versions_something
SET
version = (SELECT MAX(version)) + 1
WHERE versions_something.id = LAST_INSERT_ID();
END;
|
DELIMITER ;
我已尝试将UPDATE放入单独的触发器(AFTER INSERT ON versions_something ...
),但MySQL抱怨它在触发之前与触发器发生冲突。
我已经使用表格中的最后一个ID自行尝试了UPDATE
,每次都有效,所以我不知道发生了什么。