1. 程式人生 > 其它 >日常踩坑之jpa儲存時失敗,報錯SQL Error: 1064, SQLState: 42000錯誤

日常踩坑之jpa儲存時失敗,報錯SQL Error: 1064, SQLState: 42000錯誤

背景交代

使用jpa的save儲存物件時,發現死活存不進去,然後報錯了SQL Error: 1064, SQLState: 42000錯誤

然後,機智的我當然是把原生sql粘貼出來去資料庫裡插入,發現同樣插入不進去

原因

造成插入失敗的原因是,表中的某些名稱是mysql的關鍵字,當是關鍵字的時候,存入就會報這個錯,我出錯的欄位是describe

一些常用的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

如果你足夠強,你可以把它記下來
但其實,你把sql粘到工具裡,顏色不一樣的欄位就說明是關鍵字,然後你把它換個名稱就好了

跳坑結束,祝你快樂~