首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 錯誤 1166「Incorrect column name」:字段名含空格導致建表失敗

     編輯:MySQL 資料庫相關知識

錯誤現象

CREATE TABLE `gfan_content`.`channel_into` (
  `time` INT(11) NOT NULL COMMENT '產品id',
  `bid` INT(11) NOT NULL COMMENT '渠道商id'
) ENGINE=MYISAM CHARSET=utf8;

-- MySQL 報錯:
#1166 – Incorrect column name ‘xxx'

根因:字段名/註釋中包含不可見空格或特殊字符

常見於:

  • 從 Excel/Word 複製 SQL,帶入全角空格、零寬空格
  • 註釋中文輸入法殘留空格
  • 字段名誤輸入尾隨空格:\`bid \`

解決方法

  1. Navicat/phpMyAdmin 可視化編輯: 打開表設計器,逐個檢查字段名、註釋,刪除空格
  2. 命令行重建: 手工輸入 SQL(而非複製),確保無隱藏字符
  3. 規範化: 字段名**僅允許 [a-z0-9_],禁用中文/空格/關鍵字**

預防最佳實踐

  • SQL 統一**手工編寫或代碼生成**,拒絕文檔複製
  • IDE/編輯器開啟「顯示不可見字符」
  • Code Review 必查 SHOW CREATE TABLE 輸出

總結

Error 1166 = 字段定義含非法空格/字符。可視化工具修正或重手工寫 SQL 即可解決。納入《命名規範》:字段名只許小寫字母、數字、下劃線,註釋不許尾隨空格。

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