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

MySQL创建含UNICODE与INTEGER类型表时触发1064语法错误求助

解决MySQL表创建的1064语法错误

你的SQL代码存在几个MySQL不支持的语法问题,具体修正点和方案如下:

  • MySQL没有UNICODE或STRING数据类型,存储字符串需使用VARCHAR;若要支持全Unicode字符,需确保表的字符集设置为utf8mb4。
  • TIMESTAMP类型不能指定(30)这类无效长度参数,MySQL的TIMESTAMP最多支持6位小数精度(如TIMESTAMP(6)),通常直接使用TIMESTAMP即可。

修正后的SQL代码:

CREATE TABLE survey(
    id INTEGER(15) NOT NULL AUTO_INCREMENT, -- 可选添加AUTO_INCREMENT实现主键自增
    `name` VARCHAR(65) NOT NULL,
    parentId INTEGER(15) NOT NULL, 
    createdAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 可选添加默认值,自动记录创建时间
    modifiedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- 可选设置更新时自动刷新时间
    surveyUrl VARCHAR(100) NOT NULL,
    PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

补充说明:

  • 新增ENGINE=InnoDB DEFAULT CHARSET=utf8mb4,确保表使用支持全Unicode的字符集,避免特殊字符乱码。
  • 给createdAt和modifiedAt添加的默认规则是业务开发中的常见最佳实践,可根据实际需求调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:10:49