如何每3个月自动截断MySQL中的表?

时间:2015-04-03 05:28:32

标签: mysql sql database triggers truncate

我有一个包含15个表的PHP / MySQL项目。表名tbl_user_log之一,其中将保存所有用户日志。我想每3个月清空或截断一次该表。如何使用触发器执行此操作或任何解决方案都适用。

2 个答案:

答案 0 :(得分:0)

您可以将cronjob设置为项目的某个路径,以执行以下sql:

DELETE FROM tbl_user_log

请参阅此网站:http://setcronjob.com

或者您可以简单地使用mysql EVENT。

答案 1 :(得分:0)

它可能会帮助你

declare @tbl nvarchar(max)='table_name'
if (
       (select create_date FROM
        sys.tables where name=@tbl)
        <=  (SELECT DATEADD(month,-3, GETDATE()))
begin
truncate table @tbl
end
else
select 'table creation date is not more than 3 months'

你可以把它放在一个程序中,你可以直接传递表名作为输入,并且可以有效地工作