【发布时间】:2013-12-15 22:14:13
【问题描述】:
我有一个名为“taken”的布尔列,我将如何设置它,以便在每天午夜时将每一列的条目设置为 false?以及如何运行文件?它只是一个每天晚上工作的独立 php 文件吗?
【问题讨论】:
标签: php database postgresql
我有一个名为“taken”的布尔列,我将如何设置它,以便在每天午夜时将每一列的条目设置为 false?以及如何运行文件?它只是一个每天晚上工作的独立 php 文件吗?
【问题讨论】:
标签: php database postgresql
处理这种情况的典型方法是避免。不要每天运行批处理进行一般更新,这样做成本高,而且没有必要。
改为将布尔列替换为日期。将其设置为当前日期而不是将布尔值设置为 true,并将其设置为 null 而不是将布尔值设置为 false。
然后像这样读取值,假设列是date_taken:
SELECT coalesce((date_taken=current_date),false) AS taken, ... FROM tablename;
date_taken=current_date,则表示今天已经设置,因此返回true。date_taken<>current_date,它已被设置但更早,所以它产生假,好像午夜更新批处理已经运行。date_taken 为null,则它从未被设置或设置为null,coalesce() 产生错误。【讨论】: