在 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)
);
也不要使用 #
,而是使用 _id
或 no
您可以查看以下关于 MySQL Naming Rules
的参考资料
我正在尝试在我的架构 (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)
);
也不要使用 #
,而是使用 _id
或 no
您可以查看以下关于 MySQL Naming Rules