Синтаксическая ошибка при добавлении нескольких индексов при создании таблицы mysql - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь запустить скрипт 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

On line:

    INDEX ('EquipmentID'),

1 Ответ

0 голосов
/ 07 марта 2020

Одинарная кавычка (') обозначает строковые литералы. При обращении к именам объектов (например, столбцам) не следует использовать одинарные кавычки. Удалите их, и вы должны быть в порядке. Также обратите внимание, что первичный ключ неявно создает индекс, поэтому вам не нужно явно создавать индекс для 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)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...