首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 保留字踩坑記:字段名用 group 導致 SQL 語法錯誤

     編輯:MySQL 綜合教學

MySQL 保留字踩坑記:字段名用 group 導致 SQL 語法錯誤

慘痛經歷

臨時需求給表加字段區分導入批次,隨手命名為 group。隨後導入 Excel 持續報 SQL syntax error,折騰半天未果。靈光一現:GROUP BY 是保留字!改名後問題瞬間解決。

教訓

表名、字段名、數據庫名與保留字衝突時,SQL 語句必須用反引號 \` 包裹(如 \`group\`)。但最佳實踐是盡量避免使用保留字作為標識符。

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 Reserved Words》。命名規範建議:業務語義清晰、避開關鍵字、統一小寫+下劃線。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved