MySQL Workbench创建表触发1064错误原因咨询
MySQL 1064报错原因及解决方案
核心错误原因
报错1064属于MySQL语法错误,本次问题的根源是标识符引用符号使用错误:
- MySQL中单引号
'仅用于包裹字符串、日期类型的字面量,禁止用来包裹库名、表名、列名这类标识符 - 若标识符包含特殊字符(如本次用到的
#)、或与SQL关键字重名,需要用反引号`(键盘ESC键下方的按键输出字符)包裹转义;无特殊情况的标识符可以直接写,不需要加任何符号
你写的SQL存在的具体问题
- 第1行的
'mydb'.'employee'用单引号包裹库名、表名,不符合语法规则 - 列定义部分所有列名(
'emp#'、'firstname'等)均使用了单引号包裹,全部属于语法错误
修正后的SQL语句
版本1(所有标识符加反引号,兼容性最高)
CREATE TABLE `mydb`.`employee` ( `emp#` INT PRIMARY KEY, `firstname` VARCHAR(20) NOT NULL, `surname` VARCHAR(20) NOT NULL, `salary` INT DEFAULT 0, `city` VARCHAR(20), UNIQUE(firstname, surname) );
版本2(仅带特殊字符的emp#加反引号,更简洁)
CREATE TABLE mydb.employee ( `emp#` INT PRIMARY KEY, firstname VARCHAR(20) NOT NULL, surname VARCHAR(20) NOT NULL, salary INT DEFAULT 0, city VARCHAR(20), UNIQUE(firstname, surname) );
内容的提问来源于stack exchange,提问作者umba
相关产品推荐
相关产品推荐

