gpt4 book ai didi

mysql - cakePHP自动从mysql中删除数据

转载 作者:太空宇宙 更新时间:2023-11-03 12:32:12 24 4
gpt4 key购买 nike

该表有以下字段:id, date, user_id, city, price

我希望自动删除超过 1 年的行,但我不太确定如何执行此操作。应该由应用程序还是数据库来完成?怎么办?

这里的另一个问题是每年将有大约 5 万次插入。几年后“id”字段会发生什么变化?数量不会太大吗?在这种情况下可以做什么?

非常感谢。

最佳答案

我会建议 creating a basic shell处理删除记录,并安排一个 cron 作业,该作业在您希望检查应删除的记录时运行。外壳可以非常简单,像这样:

class JanitorShell extends AppShell {
// put the model you wish to delete from here
public $uses = array('Model');

public function main() {
$this->Model->deleteAll(array(
'Model.created <' => date('Y-m-d', '-1 year')
));
$this->out('Records deleted.');
}
}

然后您的 cron 作业将运行您的 shell。要运行您的 shell,请调用:

cake -app /path/to/app janitor

这假设 cake 在您的 PATH 中。当然,这是一个非常基本的 shell,可以很容易地扩展,保留已删除内容的日志,甚至只是将已删除的记录移动到新表,一种“软删除”。您可能不应该将此类破坏性代码放入 main() 中,因为它会在您每次运行 shell 时运行,但这会让您入门。

要回答您的第二个问题,一年 5 万次插入没什么好担心的。要了解主键的限制,请阅读 MySQL 数据类型。

关于mysql - cakePHP自动从mysql中删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14877529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com