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

执行MySQL建表语句触发ERROR 1064 (42000)错误的求助

解决MySQL ERROR 1064 (42000) 创建articles表的语法错误

错误原因

你写的SQL里,created_at字段的默认值用错了:DATETIME NOT NULL DEFAULT CURRENT_TIME。CURRENT_TIME返回的是仅含时分秒的TIME类型值,而DATETIME字段需要的是「日期+时间」的完整格式,类型不兼容直接触发了语法错误,和外键没关系。

修正后的SQL

把CURRENT_TIME换成CURRENT_TIMESTAMP(MySQL 5.6及以上版本支持DATETIME字段用这个作为默认值),调整格式后的完整语句:

CREATE TABLE articles (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `username` VARCHAR(30) NOT NULL,
    `title` VARCHAR(30) NOT NULL,
    `description` VARCHAR(255),
    `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `users_id` INT(11) NOT NULL,
    PRIMARY KEY(`id`),
    FOREIGN KEY (`users_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
);

额外提醒

  • 确认users表已创建,且users.id是主键或拥有唯一索引,否则外键约束会创建失败(但这不是本次报错的原因)。
  • 若你的MySQL版本低于5.6,DATETIME字段不支持直接设置CURRENT_TIMESTAMP为默认值,可改用TIMESTAMP类型,或者通过触发器实现默认值逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:54:55