MySQL设置CURRENT_TIME为DATETIME默认值时遇1064语法错误求助
解决MySQL 1064语法错误问题
问题根源在created_at字段的默认值设置:
- 你使用的
CURRENT_TIME仅返回时分秒的TIME类型值,和字段定义的DATETIME(日期+完整时间)类型不兼容,导致语法报错 - MySQL中
DATETIME类型的默认值需要用CURRENT_TIMESTAMP,它会生成YYYY-MM-DD HH:MM:SS格式的完整时间,和字段类型匹配
修正后的建表代码:
CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(30) NOT NULL, pwd VARCHAR(255) NOT NULL, email VARCHAR(100) NOT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) );
补充说明:MySQL 5.6及以上版本才支持DATETIME类型使用CURRENT_TIMESTAMP作为默认值,若你的版本低于此,可将DATETIME替换为TIMESTAMP类型(TIMESTAMP本身默认支持CURRENT_TIMESTAMP)。
内容的提问来源于stack exchange,提问作者Will S.
相关产品推荐
相关产品推荐

