大家
我想添加一列start_date,其默认值为当前date(),所以我使用以下命令:
更改表验证添加列start_date日期默认值CURDATE()
但是它没有用,并告诉我它存在语法错误。
使用以下命令时效果很好:
更改表验证添加列start_date日期默认值0
任何建议表示赞赏。
最佳答案
从online documentation(我的粗体):
这就是default 0
有效(一个常数)而default curdate()
不起作用(一个函数)的原因。
您(至少)有几种方法可以解决此问题。
第一种是使用timestamp列而不是date列,并将其默认设置为CURRENT_TIMESTAMP
。不幸的是,这意味着您在提取日期时必须将其转换为日期。
第二种是使用触发器来设置列值,而不是使用默认值。例如,使用插入触发器将相关列设置为当前日期。