MySQL UPDATE语句#1064语法错误咨询:amazon-crawler表操作报错
MySQL 1064语法错误原因分析及解决办法
这个问题其实很典型,根源就出在你的数据表名amazon-crawler里的**连字符(-)**上。
MySQL对标识符(表名、字段名这类)有明确的语法规则:如果标识符包含特殊字符(比如连字符、空格),或者和MySQL的保留字重名,就必须用**反引号(`)**把整个标识符包裹起来,否则MySQL会把特殊字符当成SQL语法的一部分来解析。
你写的SQL语句里:
UPDATE amazon-crawler SET `flag_images`= '0' WHERE `id`='966'
这里的amazon-crawler没有加反引号,MySQL会把中间的连字符当成减号,错误地解析成UPDATE amazon - crawler ...——相当于你在让数据库执行“amazon减去crawler”的操作,这完全不符合UPDATE语句的语法规范,所以才会抛出#1064的语法错误。
解决办法
只需要给带连字符的表名加上反引号即可,正确的SQL语句如下:
UPDATE `amazon-crawler` SET `flag_images`= '0' WHERE `id`='966'
额外建议
如果后续还有类似的表命名需求,建议用下划线(_)代替连字符,比如把表名改成amazon_crawler。这样既符合MySQL的命名习惯,写SQL的时候也不用额外加反引号,能避免不少这类语法坑。
内容的提问来源于stack exchange,提问作者Yossi Bondasd
相关产品推荐
相关产品推荐

