我正在构建一个数据版本控制系统,每次向版本表中添加新行时,我都需要增加一个版本号,但它会增加一次,然后停止:
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 ;
我试过把更新放在一个单独的触发器里( AFTER INSERT ON versions_something ...
),但mysql抱怨它与它前面的触发器冲突。
我试过了 UPDATE
就其本身而言,使用表中的最后一个id,每次都有效,所以我不知道发生了什么。
暂无答案!
目前还没有任何答案,快来回答吧!