Mais
Adicionando várias colunas DEPOIS de uma coluna específica no MySQL
Eu preciso adicionar várias colunas a uma tabela, mas posicione as colunas após uma coluna chamada lastname
.
Eu já tentei isto:
ALTER TABLE `users` ADD COLUMN
(
`count` smallint(6) NOT NULL,
`log` varchar(12) NOT NULL,
`status` int(10) unsigned NOT NULL
)
AFTER `lastname`;
Eu percebo este erro:
Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MySQL para a sintaxe certa a utilizar perto de ') APÓS
lastname
' na linha 7
Como posso usar DEPOIS em uma consulta como esta?
330
3
Tente isto.
verifique a sintaxe
Se você quiser adicionar uma única coluna após um campo específico, então a seguinte consulta MySQL deve funcionar:
Se você quiser adicionar várias colunas, então você precisa usar 'ADD' comando cada vez para uma coluna. Aqui está a consulta MySQL para isto:
Ponto a notar
No segundo método, a última
ADD COLUMN
coluna deve ser na verdade a primeira coluna que você quer anexar à tabela.Por exemplo: se você quiser adicionar
count
,log
,status
na ordem exata apóslastname
, então a sintaxe seria de fato:Uma possibilidade seria não se preocupar em reordenar as colunas na tabela e simplesmente modificá-la, adicionando as colunas. Então, crie uma vista que tenha as colunas na ordem que você quer -- assumindo que a ordem é realmente importante. A vista pode ser facilmente alterada para refletir qualquer ordenação que você queira. Como eu posso'não imagino que a ordem seja importante para aplicações programáticas, a view deve ser suficiente para aquelas consultas manuais onde ela possa ser importante.