在 MySQL Workbench 中创建 table 时出现错误 1064

Error 1064 when creating table in MySQL Workbench

我正在尝试在我的架构 (mydb) 中创建一个名为 employee 的 table,但是每当我尝试 运行 脚本来创建 table 我收到错误 #1064。

我是 SQL 的新手,所以我一直在查看有关如何创建 table 的示例,并在遇到此错误之前放弃了这些示例来创建自己的示例。谁能解释一下为什么我会收到此错误消息?

MySQL Workbench 社区 8.0 版本 8.0.26:

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)
);

错误:

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''mydb'.'employee' ( 'emp#' INT Primary key, 'firstname' VARCHAR(20) NOT NULL, 's' at line 1

您的问题是因为您在 CREATE TABLE 语句中添加了 ' 单引号,您需要这样做:

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)
);

如果您需要 Mysql 中的引号,您需要像这样使用单引号:

CREATE TABLE `mydb`.`employee` 
(
    `emp_id` INT PRIMARY KEY,
    `firstname` VARCHAR(20) NOT NULL,
    `surname` VARCHAR(20) NOT NULL,
    `salary` INT default 0,
    `city` VARCHAR(20),
    UNIQUE(firstname, surname)
);

也不要使用 #,而是使用 _idno 您可以查看以下关于 MySQL Naming Rules

的参考资料