我需要有一个例程/函数/存储过程/任何将特定帐户从我们的'活动'表存档到非活动表。
我可以把它写成一组查询,所有查询都是由PHP按顺序执行的,但是我希望将大部分工作卸载到mysql,因为PHP不必涉及这里。< / p>
基本上,这将获得所有数据:
insert into credit_archive_acc select * from credit_acc where uid_usr = n;
delete from credit_acc where uid_usr =n;
insert into user_archive_usr select * from user_usr where id_usr = n;
delete from user_usr where id_usr = n;
(大约3个其他表我会这样做)
无论如何,我希望能够做到这样的事情: call archive_account(n); 并完成所有工作(如果失败则作为回滚事务)
我是否过多地询问了mysql?
答案 0 :(得分:1)
是的,您可以在mysql中编写存储过程,请参阅http://dev.mysql.com/doc/refman/5.0/en/stored-programs-defining.html,但请注意http://dev.mysql.com/doc/refman/5.0/en/stored-program-restrictions.html
的限制有关详细信息,请参阅http://www.scribd.com/doc/3101271/MySQL-Stored-Procedures-book
答案 1 :(得分:0)
如果您希望每天自动运行此计划任务,则可能需要使用计划任务。您可以在MySQL文档here中阅读它们。
请记住,您需要使用MySQL 5.1.6或更高版本来执行此操作,否则,需要升级时间(无论如何,新版本的速度都有一些值得注意的提升)。