萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 錯誤 1166 Incorrect column name 解決:字段名含空格排查指南

錯誤現象

使用 Navicat 等工具修改表結構時,報錯:

MySQL 返回: #1166 – Incorrect column name 'xxx'

伴隨建表 SQL 執行失敗,錯誤提示指向具體字段名。

根因分析

字段名包含不可見空格或特殊字符。MySQL 允許反引號包裹的標識符包含空格,但某些客戶端工具或 SQL 解析階段會誤判,導致「Incorrect column name」。

快速排查與修復

  1. 檢查字段定義:在建表 SQL 中仔細核對每個字段名前後是否有空格
    -- 錯誤示例
    `time` INT(11) NOT NULL COMMENT '產品id',
    `bid ` INT(11) NOT NULL COMMENT '渠道商id'  -- bid 後有空格
  2. 使用工具修正:
    • phpMyAdmin:結構頁面直接編輯字段名,去除空格
    • Navicat:表設計器中雙擊字段名修改
    • 命令行:ALTER TABLE tbl CHANGE `old name` `newname` TYPE;
  3. 預防規範:
    • 字段名僅使用字母、數字、下劃線
    • 嚴禁空格、中文、保留字
    • 統一小寫 + 下劃線命名(如 channel_id)

驗證修復

-- 修正後重新執行建表
CREATE TABLE `gfan_content`.`channel_into` (
  `time` INT(11) NOT NULL COMMENT '產品id',
  `bid` INT(11) NOT NULL COMMENT '渠道商id'
) ENGINE=MYISAM CHARSET=utf8 COLLATE=utf8_general_ci;

執行成功即解決。若仍報錯,檢查其他字段或表名是否同樣問題。

copyright © 萬盛學電腦網 all rights reserved