MySQL列名含连字符用方括号在phpMyAdmin中报错求解决方案
解决MySQL含连字符列名的建表问题
MySQL处理带连字符这类特殊字符的列名时,不能用方括号(那是SQL Server的语法),正确做法是用**反引号(`)**包裹列名,这是MySQL官方规定的标识符转义方式。
举个实际的建表示例:
CREATE TABLE third-party-data ( `user-id` INT NOT NULL, `user-name` VARCHAR(100) NOT NULL, `email-address` VARCHAR(200) UNIQUE, PRIMARY KEY (`user-id`) );
为什么之前的方法会报错?
- 用方括号:MySQL不识别方括号作为标识符的转义符,直接判定为语法错误。
- 不加任何包裹:MySQL会把列名里的连字符(-)解析成减法运算符,把
user-id当成user - id的表达式,自然会报“未知列user”之类的错误。
phpMyAdmin里的额外提示
如果用phpMyAdmin的可视化界面建表,直接输入带连字符的列名即可,系统会自动为你加上反引号;如果是手动写SQL语句,注意反引号是英文键盘上的符号(和波浪号~在同一个键位),别写成中文引号。
内容的提问来源于stack exchange,提问作者user2755309
相关产品推荐
相关产品推荐

