mysql中的保留字段产生的问题

 更新时间:2015年04月26日 13:00:10   投稿:hebedich  
我们在使用mysql的时候要注意这方面的问题,一个因为数据库字段命名不当造成的问题检查起来还是相当麻烦的,今天遇到这种问题,花费了很长时间才找到问题所在,这是无语

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versio····这句话对于咱们并不陌生,无非就是多了“,”之类的问题。但是你如果无意之中添加了一个mysql中的保留字段作为数据库中存贮的字段名,悲剧就这样发生了。

前几天因为功能的临时变更,需要给数据表添加一个字段用来区别导入的批次,我就在mysql中添加了group字段,没想到我的噩梦就此展开·····
  本来程序已经接近收尾,本想着今早来公司给程序来个欢乐的结尾,没想到····每次导入excel表总是提示我sql语句错误,我变在sql语句上添添减减,也没有把错误搞定,整整一个上午外加下午两个小时,简直已经到了抓狂的程度。简直要跪地苦思冥想,但是还是没有搞定这个错误。
  把问题放在一边,继续搞其他的东西····当在写一个group by 语句时,突然意识到,group 是mysql的一个保留字,就此问题迎刃而解。切记切记,多么痛的领悟啊

mysql的保留字段

在MySQL中,下表中的字显式被保留。其中大多数字进制被标准SQL用作列名和/或表名(例如,GROUP)。少数被保留了,因为MySQL需要它们,在MySQL中,当表名或字段名乃至数据库名和保留字冲突时,在sql语句里可以用撇号()括起来,当让我们一般都尽量少使用这些保留的字段。

ADD ALL ALTER
ANALYZE AND AS
ASC ASENSITIVE BEFORE
BETWEEN BIGINT BINARY
BLOB BOTH BY
CALL CASCADE CASE
CHANGE CHAR CHARACTER
CHECK COLLATE COLUMN
CONDITION CONNECTION CONSTRAINT
CONTINUE CONVERT CREATE
CROSS CURRENT_DATE CURRENT_TIME
CURRENT_TIMESTAMP CURRENT_USER CURSOR
DATABASE DATABASES DAY_HOUR
DAY_MICROSECOND DAY_MINUTE DAY_SECOND
DEC DECIMAL DECLARE
DEFAULT DELAYED DELETE
DESC DESCRIBE DETERMINISTIC
DISTINCT DISTINCTROW DIV
DOUBLE DROP DUAL
EACH ELSE ELSEIF
ENCLOSED ESCAPED EXISTS
EXIT EXPLAIN FALSE
FETCH FLOAT FLOAT4
FLOAT8 FOR FORCE
FOREIGN FROM FULLTEXT
GOTO GRANT GROUP
HAVING HIGH_PRIORITY HOUR_MICROSECOND
HOUR_MINUTE HOUR_SECOND IF
IGNORE IN INDEX
INFILE INNER INOUT
INSENSITIVE INSERT INT
INT1 INT2 INT3
INT4 INT8 INTEGER
INTERVAL INTO IS
ITERATE JOIN KEY
KEYS KILL LABEL
LEADING LEAVE LEFT
LIKE LIMIT LINEAR
LINES LOAD LOCALTIME
LOCALTIMESTAMP LOCK LONG
LONGBLOB LONGTEXT LOOP
LOW_PRIORITY MATCH MEDIUMBLOB
MEDIUMINT MEDIUMTEXT MIDDLEINT
MINUTE_MICROSECOND MINUTE_SECOND MOD
MODIFIES NATURAL NOT
NO_WRITE_TO_BINLOG NULL NUMERIC
ON OPTIMIZE OPTION
OPTIONALLY OR ORDER
OUT OUTER OUTFILE
PRECISION PRIMARY PROCEDURE
PURGE RAID0 RANGE
READ READS REAL
REFERENCES REGEXP RELEASE
RENAME REPEAT REPLACE
REQUIRE RESTRICT RETURN
REVOKE RIGHT RLIKE
SCHEMA SCHEMAS SECOND_MICROSECOND
SELECT SENSITIVE SEPARATOR
SET SHOW SMALLINT
SPATIAL SPECIFIC SQL
SQLEXCEPTION SQLSTATE SQLWARNING
SQL_BIG_RESULT SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT
SSL STARTING STRAIGHT_JOIN
TABLE TERMINATED THEN
TINYBLOB TINYINT TINYTEXT
TO TRAILING TRIGGER
TRUE UNDO UNION
UNIQUE UNLOCK UNSIGNED
UPDATE USAGE USE
USING UTC_DATE UTC_TIME
UTC_TIMESTAMP VALUES VARBINARY
VARCHAR VARCHARACTER VARYING
WHEN WHERE WHILE
WITH WRITE X509
XOR YEAR_MONTH ZEROFILL

相关文章

  • 一次MySQL慢查询导致的故障

    一次MySQL慢查询导致的故障

    这篇文章主要介绍了如何对MySQL慢查询导致的故障进行处理,慢查询是我们在mysql中经常需要使用到的一个很方便的功能,慢查询对于跟踪有问题的查询很有用,需要的朋友可以参考下
    2015-08-08
  • Mysql5.5 InnoDB存储引擎配置和优化

    Mysql5.5 InnoDB存储引擎配置和优化

    本文介绍一下Mysql5.5 InnoDB存储引擎配置和优化的方法
    2013-11-11
  • MySQL 5.7.18 免安装版配置教程

    MySQL 5.7.18 免安装版配置教程

    这篇文章主要为大家详细介绍了MySQL 5.7.18 免安装版配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • mysql ON DUPLICATE KEY UPDATE重复插入时更新方式

    mysql ON DUPLICATE KEY UPDATE重复插入时更新方式

    这篇文章主要介绍了mysql ON DUPLICATE KEY UPDATE重复插入时更新方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • MySQL主从复制之半同步semi-sync replication

    MySQL主从复制之半同步semi-sync replication

    这篇文章主要介绍了MySQL主从复制之半同步semi-sync replication,半同步相对于异步复制而言,提高了数据的安全性,同时也造成了一定程度的延迟,这个延迟最少是一个TCP往返的时间。所以,半同步复制最好在低延时的网络中使用,下文详细内容,需要的小伙伴可以参考一下
    2022-02-02
  • mysql 1130错误,无法登录远程服务的解决

    mysql 1130错误,无法登录远程服务的解决

    这篇文章主要介绍了mysql 1130错误,无法登录远程服务的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • MySql一条查询语句的执行流程究竟是怎么样的

    MySql一条查询语句的执行流程究竟是怎么样的

    一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇文章了,下面这篇文章主要给大家介绍了关于MySql一条查询语句的执行流程究竟是怎么样的,需要的朋友可以参考下
    2024-06-06
  • 图文详解MySQL中的主键与事务

    图文详解MySQL中的主键与事务

    这篇文章主要给大家介绍了关于MySQL中主键与事务的相关资料,主键与事务是我们使用mysql中经常遇到的,文中通过图文以及实例代码介绍的很详细,需要的朋友可以参考下
    2021-05-05
  • mysql数据NULL避坑指南分享

    mysql数据NULL避坑指南分享

    这篇文章主要介绍了mysql数据NULL避坑指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • MySQL临时表的简单用法介绍

    MySQL临时表的简单用法介绍

    这篇文章给大家简单介绍了MySQL临时表的简单用法,对此有需要的朋友可以跟着学习操作下。
    2018-06-06

最新评论