sql—在mysql中执行一段时间后删除特定记录

n6lpvg4x  于 2021-06-23  发布在  Mysql
关注(0)|答案(3)|浏览(315)
DROP EVENT `deleteTestEntries`;
CREATE DEFINER=`root`@`localhost` EVENT `deleteTestEntries`
    ON SCHEDULE EVERY 1 MINUTE
    STARTS '2018-05-25 18:17:01'
    ON COMPLETION NOT PRESERVE ENABLE DO
    DELETE FROM lead_master WHERE lead_master.lname LIKE '%Test%'

在上述事件中有什么问题。创建时没有错误,但没有执行任何操作。我只想从lead\u主表中删除记录,其中lname是'test'

gfttwv5a

gfttwv5a1#

我终于用cron jobs做到了。我创建了一个控制器,它调用一个包含查询的模型函数来删除记录。并设置cron作业,该作业在特定的时间间隔后调用控制器。

gcuhipw9

gcuhipw92#

进入my.ini文件并添加这一行,很可能这就是问题所在。

event_scheduler = on

重新启动mysql。显然你甚至可以在运行中设置它

7jmck4yq

7jmck4yq3#

我猜你不需要每分钟都有活动。只需定义一个视图即可过滤掉不需要的记录:

create view v_lead_master as
    select lm.*
    from lead_master lm
    where lm.lname not like '%Test%';

然后,安排一个作业或事件,每天在一个缓慢的时期删除您想要的行。应用程序应该使用视图。你的测试应该使用基表。

相关问题