【发布时间】:2021-07-05 11:29:54
【问题描述】:
我正在 MySQL 中创建一个表 - 像这样的 phpmyadmin:
CREATE TABLE `table_test` (
`ID` int(11) NOT NULL,
`Description` varchar(255) NOT NULL,
`CreationDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP)
我还想在此表中添加DeleteTimer。假设创建了一个 ID,并且它的 Description 为空/空,所以我想为这个特定的 ID 添加 DeleteTimer = 7 天。 7 天后,它会检查此 ID 的 Description 是否仍然为空,然后自动删除该 ID 及其整行。
据我所知How to implement cron in code (php)? 是执行一个时间限制为 7 天的 cron 作业,以便自动删除该行。但是如何在 phpmyadmin 中实现呢?由于我托管自己的服务器,因此编写 php 代码对于这个 cron 工作会更好,还是在 phpmyadmin 中执行更好?
// remove old stale data
$sql = "DELETE FROM table_test
WHERE CreationDate< DATE_ADD(NOW(),INTERVAL -2 HOUR)"; //To add 7 days here
if ( ! $mysqli->query($sql) ) {
// log $mysqli->error somewhere
}
【问题讨论】:
-
您不能在 phpmyadmin 中执行此操作。它仅用于管理您的数据库,您需要在
.php文件中编写所需的逻辑,并使用您想要的 cron 作业执行它。 Cron 作业是服务器。 -
@ikiK 你能用教程链接或如何做到这一点的例子来解释吗?
-
你也可以在间隔模式下使用MySQL调度器mariadb.com/kb/en/event-scheduler
-
@ikiK 它只是在这里创建的托管服务器
https://kas.all-inkl.com/ -
你刚刚分享的内容对我来说真的没有任何意义,对不起。看看你有什么样的服务器,linux、windows 或其他的,并研究如何将 php 文件作为 cron 作业执行。然后看看你的主机提供了什么作为工具。例如,在 C-panel 上设置 cron 作业真的很容易……或者您可能需要通过 SSH 连接到您的服务器来设置它……您需要重新搜索,这里有很多未知数。 ..