首页 > 解决方案 > 在表创建mysql上添加多个索引的语法错误

问题描述

我正在尝试运行具有多个索引的 CREATE TABLE 脚本。

CREATE TABLE IF NOT EXISTS Equipment (
    EquipmentID BIGINT  UNSIGNED UNIQUE NOT NULL AUTO_INCREMENT,
    Type VARCHAR(255) NOT NULL,
    Make VARCHAR(255),
    Model VARCHAR(255),
    Description VARCHAR(255),
    OperationNotes TEXT,
    Damaged BOOLEAN DEFAULT 0,
    PRIMARY KEY (EquipmentID),
    INDEX ('EquipmentID'),
    INDEX('Type'),
    INDEX('Model'),
    INDEX('Description')
    INDEX('Damaged')
);

但是我得到一个语法错误:

"(" is not valid at this position for this server version

在线的:

    INDEX ('EquipmentID'),

标签: mysqlsyntax

解决方案


单引号 ( ') 表示字符串文字。引用对象名称(例如列)时,不应使用单引号。删除它们,你应该没问题。另外,请注意主键隐式创建索引,因此您不需要显式创建索引EquipmentID

CREATE TABLE IF NOT EXISTS Equipment (
    EquipmentID BIGINT  UNSIGNED UNIQUE NOT NULL AUTO_INCREMENT,
    Type VARCHAR(255) NOT NULL,
    Make VARCHAR(255),
    Model VARCHAR(255),
    Description VARCHAR(255),
    OperationNotes TEXT,
    Damaged BOOLEAN DEFAULT 0,
    PRIMARY KEY (EquipmentID),
    INDEX (Type),
    INDEX (Model),
    INDEX (Description),
    INDEX (Damaged)
);

推荐阅读