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

MySQL 建表報錯:字段名包含空格必須用反引號包裹

     編輯:程式設計疑難解答

錯誤 SQL

CREATE TABLE tv_play (
    name VARCHAR(40) NOT NULL,
    country of origin VARCHAR(40) NOT NULL,  -- 錯誤:含空格
    production company VARCHAR(40) NOT NULL, -- 錯誤:含空格
    genre VARCHAR(40) NOT NULL
);

報錯:You have an error in your SQL syntax near 'of origin VARCHAR(40) NOT NULL'。

原因

MySQL 標識符(表名、字段名)**不能包含空格**,除非用**反引號 ` 包裹**。解析器將 country of origin 解析為三個關鍵字/標識符,導致語法錯誤。

修正 SQL

CREATE TABLE tv_play (
    name VARCHAR(40) NOT NULL,
    `country of origin` VARCHAR(40) NOT NULL,
    `production company` VARCHAR(40) NOT NULL,
    genre VARCHAR(40) NOT NULL
);

最佳實踐:避免空格標識符

  1. 推薦下劃線命名:country_of_origin、production_company,無需反引號,兼容性最好。
  2. 必須保留空格(如對接舊系統):全程使用反引號 `country of origin`,包括建表、查詢、索引、外鍵、ORM 映射。
  3. 工具生成:Navicat、Workbench 導出 SQL 會自動加反引號。

總結

字段名含空格**必須加反引號**。強烈建議**採用下劃線命名規範**(snake_case),徹底避免此類語法錯誤,提升 SQL 可讀性與跨數據庫兼容性。

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