私はstartdate
(datetime)とhas_started
(boolean)の2つの列を持つテーブルを持っています。日付に基づいて自動的に値を更新する方法はありますか?
ユーザは、任意の時点でこの日付に与えることができます。 startdate
が今日の日付よりも遅くなると、自動的にhas_started
を更新する方法はありますか?スクリプトなんか?ありがとう!
私はstartdate
(datetime)とhas_started
(boolean)の2つの列を持つテーブルを持っています。日付に基づいて自動的に値を更新する方法はありますか?
ユーザは、任意の時点でこの日付に与えることができます。 startdate
が今日の日付よりも遅くなると、自動的にhas_started
を更新する方法はありますか?スクリプトなんか?ありがとう!
私はあなたがビューを使用することを示唆している:あなたはビューを照会した場合はにアクセスしたとき
create view v_table as
select t.*,
(startdate <= curdate() then 1 else 0 end) as has_started
from table t;
、has_started
列が更新されます。値はデータベースに格納する必要はありません。
(注:時間のコンポーネントがある場合、あなたはnow()
代わりのcurdate()
を使用することができます。)
あなたはSTARTDATEが今日以前の場合has_startedが真でなければなりません意味ですか? – jarlh
なぜ列があるのですか?オンザフライで確認できます –
そのような時間依存データを保存することは、一般的には悪い考えです。なぜなら、開始されていないものが翌日に開始される可能性があるからです。代わりに常に最新のhas_startedを返すビューを作成してください! – jarlh