今天遇到一个错误:
2024-07-05 08:42:33.150 ERROR 8220 --- [io-17001-exec-1] c.alibaba.druid.filter.stat.StatFilter : merge sql error, dbType sqlserver, druid-1.1.21, sql : SELECT dydm,dymc,byzd1,byzd3,byzd4,in_date,out,out_date FROM dianyuan WHERE dydm=?
com.alibaba.druid.sql.parser.ParserException: ERROR. pos 83, line 1, column 81, token OUT
错误详情指出在SQL语句位置83,即第1行的第81列,遇到了关键字OUT,这导致了ParserException。
解决方式就是遇到了加上[]来包围字段名,例如[out]。
我用的是mybatis plus
@TableField("[out]")private String out; //离职
那么有哪些是需要规避的最好是不要作为字段名呢?
以下是一些常见的 SQL Server 关键字,使用时应当注意:•ADD•ALL•ALTER•AND•ANY•AS•ASC•AUTHORIZATION•BACKUP•BEGIN•BETWEEN•BREAK•BROWSE•BULK•BY•CASCADE•CASE•CHECK•CHECKPOINT•CLOSE•CLUSTERED•COALESCE•COLLATE•COLUMN•COMMIT•COMPUTE•CONSTRAINT•CONTAINS•CONTINUE•CONVERT•CREATE•CROSS•CURRENT•CURRENT_DATE•CURRENT_TIME•CURRENT_TIMESTAMP•CURRENT_USER•CURSOR•DATABASE•DBCC•DEALLOCATE•DECLARE•DEFAULT•DELETE•DENY•DESC•DISK•DISTINCT•DISTRIBUTED•DOUBLE•DROP•DUMP•ELSE•END•ERRLVL•ESCAPE•EXCEPT•EXEC•EXECUTE•EXISTS•EXIT•EXTERNAL•FETCH•FILE•FILLFACTOR•FOR•FOREIGN•FREETEXT•FREETEXTTABLE•FROM•FULL•FUNCTION•GOTO•GRANT•GROUP•HAVING•HOLDLOCK•IDENTITY•IDENTITY_INSERT•IDENTITYCOL•IF•IN•INDEX•INNER•INSERT•INTERSECT•INTO•IS•JOIN•KEY•KILL•LEFT•LIKE•LINENO•LOAD•MERGE•NATIONAL•NOCHECK•NONCLUSTERED•NOT•NULL•NULLIF•OF•OFF•OFFSETS•ON•OPEN•OPENDATASOURCE•OPENQUERY•OPENROWSET•OPENXML•OPTION•OR•ORDER•OUTER•OVER•PARTITION•PERCENT•PIVOT•PLAN•PRECISION•PRIMARY•PRINT•PROC•PROCEDURE•PUBLIC•RAISERROR•READ•READTEXT•RECONFIGURE•REFERENCES•REPLICATION•RESTORE•RESTRICT•RETURN•REVERT•RIGHT•ROLLBACK•ROWCOUNT•ROWGUIDCOL•RULE•SAVE•SCHEMA•SECURITYAUDIT•SELECT•SEMANTICKEYPHRASETABLE•SEMANTICSIMILARITYDETAILSTABLE•SEMANTICSIMILARITYTABLE•SESSION_USER•SET•SETUSER•SHUTDOWN•SOME•STATISTICS•SYSTEM_USER•TABLE•TABLESAMPLE•TEXTSIZE•THEN•TO•TOP•TRAN•TRANSACTION•TRIGGER•TRUNCATE•TRY_CONVERT•TSEQUAL•UNION•UNIQUE•UNPIVOT•UPDATE•UPDATETEXT•USE•USER•USING•VALUES•VARYING•VIEW•WAITFOR•WHEN•WHERE•WHILE•WITH•WITHIN GROUP•WRITETEXT
在设计数据库结构时,尽量避免使用这些关键字作为标识符,以减少潜在的复杂性和错误。