Изменить таблицу добавить первичный ключ не распознан MySQL - PullRequest
2 голосов
/ 27 февраля 2020

Я пытаюсь выполнить инструкцию ALTER TABLE invoice_partitioned DROP PRIMARY KEY, ADD PRIMARY KEY(invoice_partitioned.id, invoice_partitioned.department_code);

При запуске выдается синтаксическая ошибка (код ошибки 1064). MySQL Workbench подсвечивает скобки после ADD PRIMARY KEY с сообщением «" ("недопустимо в этой позиции для этой версии сервера".

Есть ли способ решить эту проблему? Я нахожусь на MySQL Сервер совместной работы 8.0.19

Ответы [ 2 ]

3 голосов
/ 27 февраля 2020

Например, если бы у нас была таблица:

create table invoice_partitioned (id int
                                  , department_code INT
                                  , primary key(ID));

Тогда вот так:

ALTER TABLE invoice_partitioned DROP PRIMARY KEY;

ALTER TABLE invoice_partitioned ADD PRIMARY KEY(id, department_code);

Вот демоверсия

Это также будет работать:

ALTER TABLE invoice_partitioned
DROP PRIMARY KEY,
ADD PRIMARY KEY(id, department_code);

Демо

2 голосов
/ 27 февраля 2020

вы можете сделать это в одном выражении

просто не добавляйте имя таблицы перед именем столбца, как показано ниже

замените

ALTER TABLE invoice_partitioned DROP PRIMARY KEY, ADD PRIMARY KEY(invoice_partitioned.id, invoice_partitioned.department_code);

на это

ALTER TABLE invoice_partitioned DROP PRIMARY KEY, ADD PRIMARY KEY (id, department_code);
...