MySQL如何为名为GROUP的列添加表索引?
问题原因
GROUP属于MySQL的官方保留关键字,SQL解析器会优先将其识别为语法关键字(例如GROUP BY子句中的关键字),而非你自定义的列名,因此触发1064语法错误。即使用表名限定的方式引用该列,只要没有特殊标记,解析器依然会优先匹配保留关键字,所以你之前的尝试都无法生效。
解决方案
在引用作为标识符的保留关键字时,用**英文输入法下的反引号(`,键盘左上角Esc下方按键)**将其包裹,强制MySQL将其识别为自定义列名即可。
正确的建索引SQL如下:
ALTER TABLE MY_TABLE ADD INDEX (`GROUP`);
如果要使用表名限定的写法,格式为:
ALTER TABLE MY_TABLE ADD INDEX (MY_TABLE.`GROUP`);
补充建议
日常设计表结构时,尽量不要使用MySQL保留关键字作为表名、列名、索引名等自定义标识符,能避免后续大量类似的语法适配问题。
内容的提问来源于stack exchange,提问作者AndyW
相关产品推荐
相关产品推荐

