我有两张表posts_app
和posts_unapp
。两者结构相同。
posts_app - 包含审核帖子
"id" "title" "body" "url" "user" "country"
posts_unapp - 新帖子最终在这里
"id" "title" "body" "url" "user" "country" "Status"
1 Hello Test Foo Bar Tar 2
posts_unapp
包含新帖子,主持人尚未批准。使用status = 2
插入新帖子(这意味着他们尚未经过检查,既未获得批准也未被拒绝)。
主持人检查过帖子后,如果获得批准,则status
列会更新为true
,如果被拒绝,则会false
。此时,是否可以仅在状态设置为true时自动将帖子复制到posts_app
表?
实现这一目标的一种方法是在trigger on update
上使用posts_unapp
。但问题是,模式管理员可以将status
设置为true
或false
。两者都算作更新,两者都会触发触发器。设置status = flase
无需复制数据,只有在status
设置为true
时才需要复制数据。
这样做的好方法是什么?我决定使用两个表来保持posts_app
表的清洁。
答案 0 :(得分:2)
DELIMITER $$
CREATE TRIGGER mytrig AFTER UPDATE ON posts_unapp
FOR EACH ROW
BEGIN
IF NEW.Status = 'true' THEN
INSERT INTO posts_app VALUES(NEW.id, NEW.title,NEW.body,NEW.url,NEW.user,NEW.country);
END IF;
END;
$$
DELIMITER ;