我正试图在我的模式(mydb
(中创建一个名为employee
的表,但每当我尝试运行脚本来创建该表时,我都会收到错误#1064。
我是SQL的新手,所以我一直在看关于如何创建表的示例,然后放弃这些示例创建自己的表,直到我遇到这个错误。有人能解释一下为什么我收到这个错误信息吗?
MySQL Workbench Community 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)
);
错误:
错误代码:1064。您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,了解在"mydb"附近使用的正确语法employee'('emp#'INT主键,'firstname'VARCHAR(20(NOT NULL,'s'位于的第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命名规则的参考