MySQL中CREATE TABLE POSITION报ERROR 1064的原因咨询
为什么MySQL中无法用POSITION作为表名创建表?
POSITION是MySQL的保留关键字,它是MySQL内置的字符串函数,作用是查找子字符串在目标字符串中的位置(用法和LOCATE()类似)。
当你直接把保留关键字用作表名、列名这类自定义标识符时,MySQL会把它当成SQL语法的一部分解析,而不是你要创建的表的名称,所以会触发ERROR 1064语法错误。
如果一定要用这个名称作为表名,有两种可行方案:
- 用反引号(`)将表名包裹,让MySQL将其识别为自定义标识符:
CREATE TABLE `POSITION`( ID INT AUTO_INCREMENT PRIMARY KEY, NAME CHAR(2) NOT NULL );
- 给表名添加前缀或后缀,比如改为
POSITIONS、T_POSITION,避开保留关键字即可正常执行。
内容的提问来源于stack exchange,提问作者Rocha Marc
相关产品推荐
相关产品推荐

