Preciso adicionar várias colunas a uma tabela, mas posicionar as colunas após 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 à versão do servidor MySQL para a sintaxe correta a ser usada perto de ') APÓS
lastname
' na linha 7
Como posso usar APÓS uma consulta como esta?
ALTER TABLE
sintaxe varia um pouco entre os dialetos.Respostas:
Tente isto
verifique a sintaxe
fonte
ADD
,ALTER
,DROP
, eCHANGE
cláusulas são permitidos em uma únicaALTER TABLE
instrução, separados por vírgulas. Esta é uma extensão do MySQL ao SQL padrão, que permite apenas uma de cada cláusula por instrução ALTER TABLE.Se você deseja adicionar uma única coluna após um campo específico, a seguinte consulta MySQL deve funcionar:
Se você quiser adicionar várias colunas, precisará usar o comando 'ADICIONAR' toda vez para uma coluna. Aqui está a consulta do MySQL para isso:
Aponte para observação
No segundo método, a última
ADD COLUMN
coluna realmente deve ser a primeira coluna que você deseja anexar à tabela.Por exemplo: se você deseja adicionar
count
,log
,status
na ordem exata depoislastname
, em seguida, a sintaxe seria realmente:fonte
count
,log
,status
oucount
,status
,log
?Você não pode mencionar vários nomes de coluna com vírgulas usando
ADD COLUMN
. Você precisa mencionarADD COLUMN
sempre que definir uma nova coluna.fonte
Este está correto:
fonte
Você pode fazer isso com isso, funcionando bem para mim.
fonte
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 com as colunas na ordem desejada - supondo que a ordem seja realmente importante. A visualização pode ser facilmente alterada para refletir qualquer pedido que você desejar. Como não consigo imaginar que o pedido seja importante para aplicativos programáticos, a visualização deve ser suficiente para as consultas manuais em que isso possa ser importante.
fonte
Isso dará bons resultados.
fonte
Este trabalho é bom para mim:
fonte
A solução que funcionou para mim com o valor padrão 0 é a seguinte
fonte
Alternativamente:
Colocá-los-á na ordem que você deseja enquanto simplifica a instrução AFTER.
fonte