Estou tentando modificar uma tabela para criar sua coluna de chave primária AUTO_INCREMENT
após o fato. Eu tentei o seguinte SQL, mas recebi uma notificação de erro de sintaxe.
ALTER TABLE document
ALTER COLUMN document_id AUTO_INCREMENT
Estou fazendo algo errado ou isso não é possível?
+ -------------------- + | VERSÃO () | + -------------------- + | 5.0.75-0ubuntu10.2 | + -------------------- +
sql
mysql
alter-table
Cruz
fonte
fonte
Roman está certo, mas observe que a coluna auto_increment deve fazer parte da PRIMARY KEY ou UNIQUE KEY (e em quase 100% dos casos, deve ser a única coluna que compõe a PRIMARY KEY):
fonte
No meu caso, só funcionou quando eu coloquei
not null
. Eu acho que isso é uma restrição.fonte
O SQL para fazer isso seria:
Existem alguns motivos pelos quais seu SQL pode não funcionar. Primeiro, você deve especificar novamente o tipo de dados (
INT
neste caso). Além disso, a coluna que você está tentando alterar deve ser indexada (ela não precisa ser a chave primária, mas geralmente é isso que você deseja). Além disso, pode haver apenas umaAUTO_INCREMENT
coluna para cada tabela. Portanto, convém executar o seguinte SQL (se sua coluna não estiver indexada):Você pode encontrar mais informações na documentação do MySQL: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html para a sintaxe da coluna de modificação e http://dev.mysql.com/doc /refman/5.1/en/create-table.html para obter mais informações sobre como especificar colunas.
fonte
Você deve especificar o tipo da coluna antes da
auto_increment
diretiva, ou sejaALTER TABLE document MODIFY COLUMN document_id INT AUTO_INCREMENT
.fonte
MODIFY COLUMN
AUTO_INCREMENT
faz parte do tipo de dados da coluna, é necessário definir o tipo de dados completo para a coluna novamente:(
int
como exemplo, você deve configurá-lo para o tipo que a coluna tinha antes)fonte
Você pode fazer assim:
fonte
AUTO_INCREMENT
faz parte do tipo de dados da coluna, é necessário definir o tipo de dados completo para a coluna novamente:(como exemplo, você deve defini-lo como o tipo que a coluna tinha antes)
fonte
Você pode usar a seguinte consulta para fazer com que document_id seja incrementado automaticamente
É preferível criar a chave primária document_id também
fonte
A declaração abaixo funciona. Observe que você precisa mencionar o tipo de dados novamente para o nome da coluna (redecare o tipo de dados que a coluna era antes).
fonte
Se nenhuma das opções acima funcionar, tente isso. Foi o que fiz no MYSQL e sim, você precisa escrever o nome da coluna (document_id) duas vezes.
fonte
Para modificar a coluna no mysql, usamos alter and modify keywords. Suponha que tenhamos criado uma tabela como:
Agora queremos modificar o tipo do ID da coluna para inteiro com incremento automático. Você poderia fazer isso com um comando como:
fonte
Sintaxe de tabela anterior:
Para alterar o TransactionId para incremento automático, use esta consulta
fonte
fonte
Bem assim:
alter table document modify column id int(11) auto_increment;
fonte
Ao redefinir a coluna novamente, é necessário especificar o tipo de dados novamente e adicionar acréscimo automático a ele, pois faz parte do tipo de dados.
fonte
Configurando a coluna como chave primária e incremento automático ao mesmo tempo:
fonte
ALTER TABLE table_name MODIFY COLUMN id tipo de dados auto_increment;
fonte
Use as seguintes consultas:
fonte