我用id和日期做了一个简单的表,默认值为current\u timestamp,我很好奇如何设置date current\u timestamp+1 year。例如,如果now()是2018-01-23 13:57:22,我希望默认值是2019-01-23 13:57:22。在插入新行之前,我可以用触发器或代码来完成这个操作,但是还有其他的快捷方式吗?
例如:如何设置默认值date\u add(当前时间戳,间隔1年)
同样的问题:https://bugs.mysql.com/bug.php?id=56835
1条答案
按热度按时间q3aa05251#
它不可能是手动的。
数据类型规范中的default value子句表示列的默认值。除了一个例外,默认值必须是常量;它不能是函数或表达式。例如,这意味着您不能将日期列的默认值设置为函数的值,例如now()或current\u date。例外情况是,您可以将当前的\u timestamp指定为timestamp和datetime列的默认值。
所以现在唯一的方法是在表中插入新行之前使用触发器或手动。