You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 8.0.31添加默认值为CURDATE()的DATE字段触发语法错误

MySQL 8.0.31中新增DATE字段并设置CURDATE()默认值报错的解决方法

问题原因

在MySQL 8.0中,当使用函数作为列的默认值时,必须将函数表达式用括号()包裹起来。你之前的语句ALTER TABLE test ADD COLUMN col4 DATE DEFAULT CURDATE()未对CURDATE()添加括号,违反了语法规则,因此触发1064错误。

正确语句

将函数用括号包裹后即可正常执行:

ALTER TABLE test ADD COLUMN col4 DATE DEFAULT (CURDATE());

验证结果

执行上述语句后,查看表结构会看到col4字段的默认值已正确设置:

mysql> describe test;
+-------+--------------+------+-----+-------------------+-------+
| Field | Type         | Null | Key | Default           | Extra |
+-------+--------------+------+-----+-------------------+-------+
| col1  | int          | YES  |     | 0                 |       |
| col2  | varchar(100) | YES  |     | hello             |       |
| col3  | varchar(5)   | YES  |     | T                 |       |
| col4  | date         | YES  |     | (CURDATE())       |       |
+-------+--------------+------+-----+-------------------+-------+

内容的提问来源于stack exchange,提问作者Siddharth Das

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 04:40:39