侧边栏壁纸
博主头像
沙漠渔

把過去的累積,善用到當下

  • 累计撰写 484 篇文章
  • 累计创建 295 个标签
  • 累计收到 958 条评论
标签搜索

目 录CONTENT

文章目录

MYSQL数据库中字段名与关键字冲突解决办法

沙漠渔
2022-05-31 / 0 评论 / 0 点赞 / 102 阅读 / 1,936 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-06-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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 'maxvalue, id) VALUES (10, 1)' at line 1

如果字段名和关键字冲突了,就会报上面的错误,首先,不推荐使用MySQL的关键词来作为字段名,这在之前的一篇文章里也明确说明过,mysql中尽量不要当做字段名的关键词,使用了会多加很多注意的点-沙漠渔溏,但是有时候的确没有注意,或者因为之前就这么写了,没办法,那怎么办呢?

  • 方法1,改字段名,改了肯定就没问题了。这个就不细说了。
  • 方法2,使用引号`来处理。

  下面就详细的说明一下怎样使用方法2来处理。

1. 创建测试表

CREATE TABLE `test` (
  `maxvalue` int(10) DEFAULT NULL,
  `id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

上面的测试表是MySQL自动生成的DDL,其实从上面就可以看出,MySQL的引号内是说明绝对的保证大小写和当做普通字符串处理。
 这里使用了maxvalue这个不常用的关键词作为字段名,一样违反了通常常规的命名规则,MySQL无法很好的识别。
16382881ef1d3993a891fb8d.webp

2. 错误问题现象重现

  查询SQL:

SELECT t.id, t.maxvalue FROM test t

1638288137dc2594548adfd4.webp

在navicat中可以正常执行,没有任何问题。
然后再运行insert语句:

INSERT INTO test(maxvalue, id) VALUES (10, 1);

  提示下面的错误:

INSERT INTO test(maxvalue, id) VALUES (10, 1)
> 1064 - 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 'maxvalue, id) VALUES (10, 1)' at line 1
> 时间: 0.02s

提示错误,但是没有明显的说明是关键词不能识别。

1638288196de844cbcb55733.webp

3. SQL语句中的解决办法

  增加引号,使用MySQL的引号“`”,记住不是普通的英文单引号“'”,是倾斜的上撇,不是竖直的上撇。
 键盘输入方式为键盘英文字母键上面的数字键1最前面的那个波浪线和顿号组成的键。也就是ESC下面,TAB键上面的按键。

INSERT INTO test(`maxvalue`, id) VALUES (10, 1);

163828818f7e481c10f600a8.webp

0
广告 广告

评论区