изменить таблицу добавить ... перед `code`? - PullRequest
12 голосов
/ 04 августа 2010

ALTER TABLE tada_prod. action_6_weekly ADD COLUMN id INT NULL AUTO_INCREMENT UNIQUE AFTER member_id;

работает

так что я подумал, чтобы добавить столбец в качестве первого столбца, который я мог сделать

ALTER TABLE `tada_prod`.`action_6_weekly`     ADD COLUMN `id` INT NULL AUTO_INCREMENT UNIQUE BEFORE `code`;

но я получаю синтаксическую ошибку, какой правильный синтаксис?

Ответы [ 3 ]

21 голосов
/ 04 августа 2010
ALTER TABLE `tada_prod`.`action_6_weekly`
ADD COLUMN `id` INT NULL AUTO_INCREMENT UNIQUE FIRST;
7 голосов
/ 10 января 2014

Вы можете добавить столбец только после определенного поля или сначала не раньше. Запрос MySQL для добавления столбца после конкретного поля:
ALTER TABLE table_name ADD COLUMN column_name VARCHAR(30) AFTER column_name

1 голос
/ 19 апреля 2014

На самом деле,

alter table table_name ADD column_name VARCHAR(12) NOT NULL BEFORE specific_column_name;

Эта команда не разрешена в синтаксисе mySQL. Если вы используете его, я думаю, вы получите

"ОШИБКА 1064: в синтаксисе SQL есть ошибка; проверьте руководство, которое соответствует вашей версии сервера MySQL для права синтаксис для использования рядом с сообщением 'before specific_column_name' в строке 1 "

Вы можете попробовать:

ALTER TABLE table_name ADD column_name VARCHAR(12) NOT NULL FIRST;
...