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' 附近使用的正确语法 [重复]

检查与MariaDB服务器版本对应的手册,以便在“数组”SQL附近使用正确的语法