mysql ignore errors_MySQL关键字引起的问题

Hibernate: select max(cfis_album_id_pk) from cfis_album

Hibernate: insert into cmis.cfis_album (albumname, cfis_album_uid_fk, username, buildtime, updatetime, picnum, coverpath, isEmpty, right, password, target_ids, descrition, cfis_album_id_pk) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

org.springframework.dao.InvalidDataAccessResourceUsageException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update

Caused by: org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update

·············

Caused by: java.sql.BatchUpdateException: 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 'right, password, target_ids, descrition, cfis_album_id_pk) values ('A', 7, 'ken'' at line 1

今天就是被这个错误浪费我一天的时间,把工程的相关文件都检查了几遍都没发现问题,最后在Q群的前辈指出了错误:

数据表用到了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

MySQL允许部分关键字用做未引起来的识别符,因为许多人以前曾使用过它们。下面列出了一些例子:

ACTION

BIT

DATE

ENUM

NO

TEXT

TIME

TIMESTAMP

引用

数据库产品里边都有自己的关键字的,字段名与关键字不能相同的,相同要转义,oracle就有很多关键字。

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2009-08-02 00:05

浏览 1373

评论

发表评论

文章已被作者锁定,不允许评论。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值