Olá, como faço para definir um campo já existente como chave primária no MySQL? Por exemplo tinha esquecido de criar o campo “id”, e criei depois, agora preciso defini-lo como primary key.
ALTER TABLE sua_tabela ADD PRIMARY KEY(coluna);
1 curtida
1 - Altere o tipo:
ALTER TABLE nome_tabela
MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT;
2 - Defina como PK:
ALTER TABLE nome_tabela
ADD PRIMARY KEY(id);
ou assim:
ALTER TABLE nome_tabela
ADD CONSTRAINT pk_nome_tabela PRIMARY KEY(id);
Obs.: o primeiro passo não sei se é realmente necessário.
1 curtida
Apareceu esse erro:
17:14:50 alter table venda_query add primary key (id) Error Code: 1138. Invalid use of NULL value 0,200 sec
Como você fez a alteração, ou seja, qual comando usou/como usou? Como está o campo id?
Já resolvi, mas tive que excluir o campo id:
alter table venda_query
drop column id
alter table venda_query add column id int primary key auto_increment
@Iohannes mas mesmo assim não resolvi do jeito que queria.
Então meu campo id está setado como int(11) só
Você não seguiu nenhuma dos comandos passados…