TransWikia.com

Como fazer o auto incremento no MySQL sem declarar as colunas no INSERT?

Stack Overflow em Português Asked by DBA Jr on August 10, 2020

Eu reparei que quando eu tenho uma coluna com auto_increment, eu tenho que declarar as colunas no INSERT.

Por exemplo, eu criei essa tabela de teste:

create table teste(
id int auto_increment,
nome varchar(100) not null,
valor decimal(5,2),
constraint id_pk primary key (id));

Eu queria conseguir inserir os dados sem declarar as colunas, como nesse exemplo:

insert into teste values ('Danilo',333.33)

Porém ele não entende, e no fim eu tenho que declarar assim:

insert into teste (nome,valor) values ('Danilo',333.33)

Minha dúvida é se tem como eu fazer um INSERT sem declarar todas as colunas, tipo usar alguma palavra reservada ou algo do tipo que o MySQL compreenda.

One Answer

Como está usando uma sintaxe posicional com todas as colunas tem que mandar valores para todas elas. E como não quer mandar para a primeira coluna, mande um nulo. Já que ela tem um valor padrão automático esse valor será colocado no lugar do nulo.

insert into teste values (null, 'Danilo',333.33)

Veja funcionando no SQL Fiddle. Também coloquei no GitHub para referência futura.

Se achar ruim aí a saída é a que já achou, usar a sintaxe de argumentos nomeados para não considerar a posição de cada coluna.

Correct answer by Maniero on August 10, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP