SQL 语法错误; “检查与您的 MariaDB 服务器版本相对应的手册,以了解在 'Order INT NOT NULL' 附近使用的正确语法 [重复]
Posted
技术标签:
【中文标题】SQL 语法错误; “检查与您的 MariaDB 服务器版本相对应的手册,以了解在 \'Order INT NOT NULL\' 附近使用的正确语法 [重复]【英文标题】:SQL syntax error; "check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Order INT NOT NULL' [duplicate]SQL 语法错误; “检查与您的 MariaDB 服务器版本相对应的手册,以了解在 'Order INT NOT NULL' 附近使用的正确语法 [重复] 【发布时间】:2022-01-20 17:53:25 【问题描述】:我正在使用 MariaDB 和 mysql,我正在尝试使用命令提示符创建一个表,但我遇到了语法错误,我不确定出了什么问题。以下是错误:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Order INT NOT NULL,
FName VARCHAR(255),
LName VARCHAR(255),
PhoneNum VARCH...' at line 3
这是我所拥有的:
CREATE DATABASE projecttestDB;
USE projecttestDB;
DROP TABLE IF EXISTS Staff;
CREATE TABLE Staff (
Year INT NOT NULL,
Order INT NOT NULL,
FName VARCHAR(255),
LName VARCHAR(255),
PhoneNum VARCHAR(255),
Salary INT,
CHECK(Salary>=0),
PRIMARY KEY (Year, Order)
);
【问题讨论】:
不要使用Order
作为列名,它是关键字。
【参考方案1】:
order
是 SQL 中的保留字。如果您绝对必须使用它,您可以使用反引号转义列名:
CREATE TABLE Staff (
Year INT NOT NULL,
`Order` INT NOT NULL, -- Here!
FName VARCHAR(255),
LName VARCHAR(255),
PhoneNum VARCHAR(255),
Salary INT,
CHECK(Salary>=0),
PRIMARY KEY (Year, `Order`) -- And here
);
但最好将其重命名为非保留字,例如order_num
:
CREATE TABLE Staff (
Year INT NOT NULL,
Order_Num INT NOT NULL,
FName VARCHAR(255),
LName VARCHAR(255),
PhoneNum VARCHAR(255),
Salary INT,
CHECK(Salary>=0),
PRIMARY KEY (Year, Order_Num)
);
【讨论】:
【参考方案2】:Order 是系统关键词。如果您将其更改为其他内容,它将起作用。
【讨论】:
以上是关于SQL 语法错误; “检查与您的 MariaDB 服务器版本相对应的手册,以了解在 'Order INT NOT NULL' 附近使用的正确语法 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在 '0 附近使用的正确语法
SQL 语法错误 检查与您的 MariaDB 服务器对应的手册?
#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册以获取正确的语法
MySQL - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册以获取正确的语法 - phpMyAdmin
SQL 语法错误; “检查与您的 MariaDB 服务器版本相对应的手册,以了解在 'Order INT NOT NULL' 附近使用的正确语法 [重复]