Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre o auto incremento

Boa tarde! A dúvida é a seguinte, se utilizo o comando:

CREATE TABLE compras {
    id int(11) not null auto_increment,
    outras colunas,
    PRIMARY KEY (id)
};

Realmente é preciso dizer que o id seja não nulo? Visto que ele já é auto incremento.

Agradeço desde já a ajuda.

2 respostas
solução!

Opa Tiago, tudo beleza?

Então cara, uma vez definido a constraint PRIMARY KEY para o ID os valores NULL / 0 / DEFAULT são tratados por concorrência, assim como no caso do AUTO_INCREMENT.

Entretanto, a clausula disposta como Not Null, permite a inserção de valores como: NULL / 0 / DEFAULT, sendo que o banco vai trata-las para obedecer a Identity ou acusar possíveis erros.

Para te dar um norte, a clausula com o NOT NULL, é considerada um boa prática em SQL, sendo que trás melhor entendimento ao leitor do script, não permite a divergência de valores inseridos e o consumo/custo desta definição não é impactante no banco de dados.

Conclusão: Não é necessário o Not Null, mas é uma boa prática.

Muito obrigado Mateus, vou seguir sua boa prática :D