изменить таблицу добавить несколько столбцов после column1


мне нужно добавить несколько столбцов в таблицу, но расположить столбцы после столбца с именем lastname.

Я попытался это:

ALTER TABLE `users` ADD COLUMN
(
    `count` smallint(6) NOT NULL,
    `log` varchar(12) NOT NULL,
    `status` int(10) unsigned NOT NULL
) 
AFTER `lastname`;

Я получаю эту ошибку:

у вас есть ошибка в синтаксисе SQL; проверьте руководство, что соответствует вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом ') после lastname' в строке 7

как я могу использовать AFTER в таком запросе?

7 274

7 ответов:

попробуй такое

ALTER TABLE users
ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`,
ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `count`,
ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `log`;

Регистрация синтаксис

если вы хотите добавить один столбец после определенного поля, то запрос mysql:

ALTER TABLE users
    ADD COLUMN count SMALLINT(6) NOT NULL
    AFTER lastname

если вы хотите добавить несколько столбцов, то вам нужно использовать команду "добавить" каждый раз для столбца. Запрос mysql выглядит следующим образом:

ALTER TABLE users
    ADD COLUMN count SMALLINT(6) NOT NULL,
    ADD COLUMN log VARCHAR(12) NOT NULL,
    ADD COLUMN status INT(10) UNSIGNED NOT NULL
    AFTER lastname

отметить : во втором методе, последний ADD COLUMNколонки на самом деле должен быть первым столбцом, который вы хотите добавить в таблицу.

например: если вы хотите добавить count,log,status после lastname, то синтаксис на самом деле будет:

ALTER TABLE users
    ADD COLUMN log VARCHAR(12) NOT NULL,
    ADD COLUMN status INT(10) UNSIGNED NOT NULL,
    ADD COLUMN count SMALLINT(6) NOT NULL
    AFTER lastname

это правильно:

ALTER TABLE `users`
    ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`,
    ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `count`,
    ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `log`;

вы не можете упомянуть несколько имен столбцов с запятыми, используя ADD COLUMN. Вы должны указать ADD COLUMN каждый раз, когда вы определяете новый столбец.

одной из возможностей было бы не беспокоиться о переупорядочении столбцов в таблице и просто изменить его, добавив столбцы. Затем создайте представление, которое имеет столбцы в нужном порядке-предполагая, что порядок действительно важен. Вид может быть легко изменен, чтобы отразить любой порядок, который вы хотите. Поскольку я не могу представить, что порядок будет важен для программных приложений, представление должно быть достаточным для тех ручных запросов, где это может быть важно.

ALTER TABLE users ДОБАВИТЬ СТОЛБЕЦ COLUMN NAME ТИП ДАННЫХ (РАЗМЕР) ПОСЛЕ EXISTING COLUMN NAME;

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

Это прекрасно работает для меня:

ALTER TABLE 'users'
ADD COLUMN 'count' SMALLINT(6) NOT NULL AFTER 'lastname',
ADD COLUMN 'log' VARCHAR(12) NOT NULL AFTER 'count',
ADD COLUMN 'status' INT(10) UNSIGNED NOT NULL AFTER 'log';