我试图运行mysql事件进行删除。
如果deleted
表中的blog
字段设置为1,则数据字段将为
转移到blog_archive
表。
这是blog
表。如果deleted
再次设置为1
数据字段将传输到blog_archive
表
id title content deleted //blog table
-------------------------------
10 | ass | sdsd | 1 |
-------------------------------
blog_archive
表......
id title content //blog_archive table
--------------------
10 | ass | sdsd
--------------------
... blog table
现在为空
id title content deleted //blog table
-------------------------------
| | | |
-------------------------------
...首先它工作正常,但几分钟后,重新启动后事件不再运行或工作。
我也试过了SET GLOBAL event_scheduler='ON';
,但它仍然没有用。
这是事件的
的mysql代码CREATE DEFINER=`root`@`localhost` EVENT `archive_blog` ON SCHEDULE EVERY 1 MINUTE STARTS '2016-01-05 21:59:39' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
INSERT INTO blog_archive(id, title, content)
SELECT id, title, content FROM blog WHERE deleted = 1;
INSERT INTO audit_archive(id, blog_id, changetype, changetime)
SELECT audit.id, audit.blog_id, audit.changetype, audit.changetime FROM audit
JOIN blog ON audit.blog_id = blog.id WHERE blog.deleted = 1;
DELETE FROM blog WHERE deleted = 1;
END
;;
DELIMITER ;
PS:当audit
表中audit_archive
设置为1时,deleted
表数据也将传输到blog
表。