美文网首页
【MySQL】字段名与关键字冲突解决办法

【MySQL】字段名与关键字冲突解决办法

作者: 书中自有白米粥 | 来源:发表于2020-04-20 12:01 被阅读0次

  首先,不推荐使用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无法很好的识别。


Test表结构

2. 错误问题现象重现

  查询SQL:

SELECT t.id, t.maxvalue FROM test t
SELECT查询结果

  在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

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


使用非法关键词的错误

3. SQL语句中的解决办法

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

INSERT INTO test(`maxvalue`, id) VALUES (10, 1);
修改后可以正常执行的测试结果

  这样就可以正常运行了。

相关文章

  • mybatis 字段名不能与 mysql关键字冲突

    字段名不能与 mysql关键字冲突 如果column 名与mysql关键字冲突,一定要加反引号。比如 show;如...

  • 【MySQL】字段名与关键字冲突解决办法

      首先,不推荐使用MySQL的关键词来作为字段名,但是有时候的确没有注意,或者因为之前就这么写了,没办法,那怎么...

  • mysql与oracle语法差异

    mysql与oracle语法差异 mysql的一些关键字,如SCHEMA若作为字段名要加上符号` , 使用时`SC...

  • MySQL学习(二)

    2018/5/2 20:44 一、MySQL规则: 1、关键字与函数名称全部大写; 2、数据库名称、表名称、字段名...

  • MySQL基础

    MySQL基础知识一 MySQL基础知识二 DQL 1. `` : 着重号,用来区分关键字和字段名 2. 查询过程...

  • ` `在SQL中的含义

    `是MySQL的转义符,避免和 mysql 的本身的关键字冲突,只要你不在列名、表名中使用mysql的保留字或中文...

  • MySQL检索数据

    检索不同的行 解决办法是使用DISTINCT关键字,顾名思义,此关键字指示MySQL只返回不同的值 DISTINC...

  • sql系统关键字转义

    经评论区朋友的指点,此篇文章存在问题,不把SQL关键字作为字段名才是解决问题的关键。单独针对mysql,可以使用反...

  • 增、删、改、数据运维

    增 关键字 insert into 表名 (字段名1,字段名2,。。。)value(值1,值2,。。。)value...

  • 手势与tableView冲突解决办法

    #pragma mark --- 手势与tableView冲突解决办法 - (BOOL)gestureRecogn...

网友评论

      本文标题:【MySQL】字段名与关键字冲突解决办法

      本文链接:https://www.haomeiwen.com/subject/ocerihtx.html