希望我能解释一下我遇到的问题。
我必须使用伪代码/SQL查询编写一个逐步的方法来自动从库存数据库中生成低库存/过期的产品/项目列表。该名单必须在每天中午12点更新。
I tried this
CREATE EVENT IF NOT EXISTS update_table
ON SCHEDULE EVERY 1 DAY STARTS '2022-05-22 00:00:00'
ON COMPLETION PRESERVE ENABLE
Do
Select inventory.products from inventory where inventory.stocks <
inventory.required_stocks.
您声明的要求是在每个日历日开始后很快运行某种报告。
下一个你必须回答的问题是:你要怎么处理那份报告?你会直接把它扔进"低库存"吗?表在数据库中的某个位置?你会把它格式化成电子邮件发送给你的采购部门吗?很难制作"伪代码"。满足您的需求,而不首先分析您打算增强的整个业务流程。
各种RDBMS系统都有在一天的特定时间执行计划任务的方法。您已经展示了由MariaDB/MySQL提供的EVENT设置。SQL Server有自己的"工作"。系统。postgreSQL有pg_cron扩展名。你
问题是,您不能只在这些计划的数据库操作中执行SELECT操作:结果集在该上下文中没有地方可去。您可以执行CREATE TABLE midnight_run AS SELECT whatever ...
,将结果放入表中。但是结果在另一个表中。
如果你想从DBMS中得到结果,你需要一个UNIXish的cron作业或一个windows的计划任务,在每天的午夜运行一个适当的应用程序。
专业提示尽量避免把工作安排在午夜。那时很多东西都在运行。如果您等到一小时后的几分钟,您的代码就不太可能与其他午夜代码竞争。