MySQL生成的列禁止使用不确定性函数,例如NOW()
。
还有其他方法可以在生成的列中使用当前日期吗?
我有以下内容,但由于使用NOW()
而引发错误:
CREATE TABLE test (
id INT,
type_id INT,
start_dt TIMESTAMP,
end_dt TIMESTAMP,
refreshed_dt TIMESTAMP AS (CASE WHEN `type_id` = 3 and DATE_ADD(`start_at`,INTERVAL DATEDIFF(`end_at`,`start_at`)/2 DAY) <= NOW() THEN DATE_ADD(`start_at`,INTERVAL DATEDIFF(`end_at`,`start_at`)/2 DAY) ELSE NULL END));
如果type_id为3,并且我们处于start_dt和end_dt之间的中间日期或之后,我想有条件地添加一个refreshed_dt。
这可能吗?