我一直试图修改一个表,以包含一个默认值为CURDATE()的date列,但是MySQL经常抛出语法错误。现在,我已经检查了从多个来源修改表的语法,但是我相信我没有任何语法错误。当我删除默认值部分时,查询运行良好,但由于某些原因,它无法为date列添加默认值。我不知道为什么会这样。
守则:
mysql> describe test;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| col1 | int | YES | | 0 | |
| col2 | varchar(100) | YES | | hello | |
| col3 | varchar(5) | YES | | T | |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.02 sec)
mysql> ALTER TABLE test ADD COLUMN col4 DATE DEFAULT CURDATE();
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURDATE()' at line 1
mysql>编辑:我的MySQL版本: 8.0.31
发布于 2022-11-20 19:32:58
我想现在应该是这样的:
ALTER TABLE test ADD COLUMN col4 DATE DEFAULT (CURRENT_DATE);注意括号,或(curdate())
https://stackoverflow.com/questions/74511204
复制相似问题