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

创建MySQL artist表触发Error 1064 (42000)错误,求修复方案

MySQL Error 1064 (42000) 修复方案:avatar字段DEFAULT值语法错误

问题重现

执行创建artist表的SQL语句时,触发如下语法错误:

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 '`image.jpeg`,
    rank VARCHAR(256) NOT NULL,
    env1 VARCHAR(256) NOT NULL, 
 ' at line 14

错误根源在avatar VARCHAR(1028) DEFAULT image.jpeg``这一行,误用了反引号包裹字符串默认值。

修复方法

将默认值的反引号替换为单引号,修改后的完整表创建语句如下:

artist_table_create = """
CREATE TABLE artist (
    id INT NOT NULL,
    sid INT NOT NULL,
    name VARCHAR(32) NOT NULL,
    birthdate DATE NOT NULL,
    gender ENUM('0', '1') NOT NULL,
    code_melli VARCHAR(32) NOT NULL,
    phonenumber VARCHAR(16) NOT NULL,
    email VARCHAR(128) NOT NULL,
    location1 VARCHAR(32) NOT NULL,
    location2 VARCHAR(32) NOT NULL, 
    date_signedup DATE NOT NULL,
    verification_status ENUM('0', '1'),
    avatar VARCHAR(1028) DEFAULT 'image.jpeg',  -- 替换反引号为单引号
    rank VARCHAR(256) NOT NULL,
    env1 VARCHAR(256) NOT NULL, 
    env2 VARCHAR(256) NOT NULL,
    env3 VARCHAR(256) NOT NULL,
    PRIMARY KEY (id, sid, phonenumber)
);"""

原因说明

MySQL对符号的使用有明确规则:

  • 反引号(`)仅用于包裹标识符,比如表名、字段名(当名称含特殊字符或与关键字冲突时使用)
  • 单引号(')用于包裹字符串值,包括字段的默认字符串

你用反引号包裹image.jpeg,MySQL会将其识别为一个标识符而非字符串值,因此触发语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:15:38