mysql 1064 syntax_mysql 报错ERROR 1064 (42000),原因使用了mysql保留字 (right syntax to use near 'groups)...

msql 8.0 执行语句:

SELECT *  FROM groups;

会报如题的错误,

需加反引号进行修改:

SELECT *  FROM `groups`;

//分割线

执行select语句:

select * from cfg_parameter where key='nSJtifqVSI7HkPrKHlxhD6';

ERROR 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 'key='nSJtifqVSI7HkPrKHlxhD6'' at line 1

乍一看,好像这条语句并没有什么问题。但是执行之后mysql确实报错了,所以肯定是有问题的。

排查:select * from cfg_parameter where 没有问题,key也没问题,='nSJtifqVSI7HkPrKHlxhD6';也没有问题。

等等,再仔细看看,发现key是mysql的保留字,当使用了mysql保留字,需要用反引号将其引起来,也就是键盘数字1旁边的键(` `)。

解决方法:

1、若使用了mysql的保留字,需要将其用反引号引起来。

mysql> select * from cfg_parameter where `key`='nSJtifqVSI7HkPrKHlxhD6';

+------+------------------------+----------------------+-----------+-----------------------------------------------------------+------------+

| id   | key                    | cfg_name             | option_id | parameter_content                                                  | is_deleted |

+------+------------------------+----------------------+-----------+-----------------------------------------------------------+------------+

|    5 | nSJtifqVSI7HkPrKHlxhD6 | ACTIONID_LIST_TO_RCP |      NULL | {"ACTION_IDS":"0~90001"}     |          0 |

+------+------------------------+----------------------+-----------+-----------------------------------------------------------+------------+

2、建议不要在创建表的过程中使用mysql保留字,避免后期造成麻烦。

mysql保留字:

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

---------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值