mysql - type - alter table adicionar colunas MULTIPLE APÓS coluna1




try algorithm inplace (5)

Eu preciso adicionar várias colunas a uma tabela, mas posicionar as colunas depois de uma coluna chamada lastname .

Eu tentei isso:

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

Eu recebo este erro:

Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MySQL para a sintaxe correta para usar próximo de ') AFTER lastname ' na linha 7

Como posso usar o AFTER em uma consulta como esta?


Este é correto:

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`;

Este trabalho é bom para mim:

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';

Tente isso

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`;

verifique a syntax


Uma possibilidade seria não se preocupar em reordenar as colunas na tabela e simplesmente modificá-lo adicionando as colunas. Em seguida, crie uma exibição que tenha as colunas na ordem desejada, desde que a ordem seja realmente importante. A visualização pode ser facilmente alterada para refletir qualquer ordem desejada. Como não consigo imaginar que a ordem seja importante para aplicativos programáticos, a visualização deve ser suficiente para as consultas manuais, onde isso pode ser importante.


users ALTER TABLE ADD COLUMN COLUMN NAME DATATYPE (TAMANHO) APÓS O EXISTING COLUMN NAME ;

Você pode fazer isso com isso, funcionando bem para mim.







ddl