我要问的是非常基本的。
想象一下用户表中的日期列。
Username --- RegistrationDate ----- Authority
user1 - (today's date) - 1
user2 - (yesterday's date) - 1
每个用户必须在 10 天后自动升级到Authority = 2
。
我知道我可以通过使用 CRON 不断执行 PHP 来做到这一点,但是数据库的内置功能呢?
类似于:
//pseudo code
bind trigger on users.RegistrationDate, function() {
if(RegistrationDate >= RegistrationDate+10 days)
return updateAuthority(1)
}
其中一个重要的事情是性能。它不应该检查循环中的每个触发器,无论应该触发什么,都应该通过将它们直接绑定(bind)到列上来按时触发。
第二件重要的事情是,当我备份数据库时应该将其导出。我不想重新创建它们。
我不是数据库方面的专家,但我在这个项目中使用 MySQL,并且需要 MySQL 的类似功能。如果它不存在并且我必须继续使用 cron,您能否告诉我 Oracle/MSSQL 或 PostgreSQL 中是否存在类似的功能,以便我可以移植我的数据库? (哦,还有 MongoDB,它也可能是一种替代方案。)
谢谢。
最佳答案
在 MySQL 中你有事件: http://dev.mysql.com/doc/refman/5.5/en/create-event.html
只需创建一个每天触发并更新权限的事件。
编辑:(回答下面的问题)
我确信向导会导出事件,但如果没有,您可以使用 mysqldump
程序(它位于 bin 目录中)。您还可以使用 SHOW CREATE EVENT
命令导出单个事件:它返回重新创建事件所需的 SQL 命令。
关于mysql - MySQL 或其他数据库中是否有 cron 的内置替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16196274/