首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MySQL 更新 `describe` 字段報錯 1064:`describe` 是保留關鍵字,必須加反引號或改名

     編輯:程式設計綜合問答

錯誤現場

UPDATE t_project_type SET describe='aaa' WHERE id='2';
ERROR 1064: You have an error in your SQL syntax near 'describe='aaa' ...

根本原因

`DESCRIBE` 是 MySQL 保留關鍵字 (用於 `DESCRIBE table_name` 顯示表結構),作為列名時**必須用反引號包裹**,否則解析器誤以為是命令。

修正 SQL

UPDATE `t_project_type` SET `describe`='aaa' WHERE `id`='2';

最佳實踐:避免使用保留字作標識符

  1. 重命名列 (推薦,一勞永逸):
    `ALTER TABLE t_project_type CHANGE describe description VARCHAR(200);`
    後續所有 SQL 無需反引號,可讀性更強。
  2. 全程使用反引號:
    表名、列名、別名均用 `` ` `` 包裹,如 `` `select` `from` `where` ``,防止未來版本新增保留字衝突。
  3. ORM 框架自動處理:
    MyBatis-Plus、Hibernate、JPA 默認會為標識符加反引號/雙引號,手寫 SQL 時易忘。

MySQL 8.0 保留字快速查詢

SELECT * FROM INFORMATION_SCHEMA.KEYWORDS WHERE RESERVED = 1;

常見易踩坑保留字:`describe`、`key`、`index`、`order`、`group`、`by`、`select`、`insert`、`update`、`delete`、`table`、`column`、`references`、`constraint`、`trigger`、`procedure`、`function`、`view`、`schema`、`database`、`user`、`password`、`lock`、`unlock`、`partition`、`range`、`list`、`hash`、`key`、`check`、`default`、`null`、`true`、`false`、`interval`、`timestamp`、`datetime`、`date`、`time`、`year`、`month`、`day`、`hour`、`minute`、`second`...

總結

**「標識符加反引號,保留字改名字」**—— MySQL 語法錯誤 1064 瞬間消失。

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