Tenho um campo (ID) que é um compo com autoincremento no MySQL, na hora de fazer o insert passo todos os campos menos o campo de autoincremento, mas retorna erro. Alguém sabe como passar um insert no Java para uma tabela com campo com autoincremento?
Campo com autoincremento no MySQL
14 Respostas
quem cuida do auto-incremento é o mysql e não JAVA , posta seu INSERT e erro que está retornando
Talvez o campo não esteja realmente definido com o auto-incremento no MySQL… dá uma verificada
ou talvez o erro quer tá retornando não esteja relacionado a isso, manda o erro!
Estou tambem com um problema tenho uma coluna idvendas mas não está funcionando auto incremento
veja o erro “COLUMN COUNT DOESN’T MATCH VALUE COUNT AT ROW 1” o que faço.
Obrogado.
no seu metodo de gravação da sua classe coloque null no primeiro parametro do insert Ex. insert into cliente values(null,x,y,z);
o auto increment coloque como null que o mysql faz a parte dele.
Valeu obrigado
o auto increment coloque como null que o mysql faz a parte dele.
na verdade nao precisa colocar nada que é incrementado normalmente
Fala moçada…
Acredito que o rapaz estava fazendo um “insert into” sem definir os campos.
Assim, ele precisa definir o que vai em cada um…
Por exemplo:
// suponha uma tabela simples com um id e uma descricao
insert into TABELA values (0,"teste");
// Aqui nao foram especificados os campos que vao receber valores,
// entao a quantidade de valores tem que ser igual a quantidade de colunas.
// Desse jeito, se o id for auto increment, um 0 ou null precisa ser passado.
// Mas se especificarmos os campos...
insert into TABELA (descricao) values ("testando");
// omitimos o campo id, e o auto increment se vira..
Acho que eh mais ou menos assim…
Saudacoes!
obrigado pelas respostas:
Só que agora estou com outra dificuldade tenho um banco mysql com a coluna do tipo texto só que quando insiro
os dados de um textarea java da um tipo de erro, não sei o que fazer,ele só aceita uma unica linha, ai funciona .
pessoal desculpe muitas perguntas, e que sou aprediz na área.
Aprenda a colocar o seu código e os erros que estão dando pra podermos te ajudar…
O que pode estar acontecendo para você ter somente uma linha salva é que seu campo no banco pode ser um VARCHAR(40) por exemplo e você está empurrando nele mais do que o cabe… Enfim… acho que isso deveria dá um erro, mas posta aqui pra gente o tamanho do seu campo na Tabela e o tamanho do texto que quer inserir no seu campo de texto da tela…
Se houver algum erro, poste aqui por favor…
Abs e bons estudos []
Caso o problema seja o que o amigo adriano_si falou, o campo ser varchar, altere o tipo dele para, por exemplo, text.
Seria interessante, de qualquer forma, que voce poste o erro pra gente dar uma olhada.
Abraco.
StringTokenizer st = new StringTokenizer(",\"");
String nomeprod = VenderProdutos.ta3.getText();
nomeprod = st.nextToken();
nomeprod seria o texto que tento inserir no banco mysql com a coluna do tipo “mediuntext”
e este “VenderProdutos.ta3.getText();” é o campo de textarea java. simplesmente só captura o valor
do campo e tento inserir no banco.
e a mensagem é a seguinte “Data truncated for column” más se for para inserir apenas um nome
de apenas um produto ele funciona perfeito.
Cara coloque seus códigos entre as Tags {CODE}{/CODE} (no lugar de chaves Colchetes) Assim
StringTokenizer st = new StringTokenizer(",\"");
String nomeprod = VenderProdutos.ta3.getText();
nomeprod = st.nextToken();
Bom… diga qual texto você está tentando inserir… porque pelo jeito você está tentando passar uma lista de Nomes e cada um com um espaço imenso entre eles, isso pode estar estourando seu mediuntext…
Coloque o valor da String aqui ou faça um Print da sua tela com o valor que está dando erro…
Abs []
Pessoal boa noite venho aki responder para voces que, o campo textarea que eu quero enviar
para o banco é exatamente desta forma, lembrando que a tabela nomeproduto já é do tipo “MEDIUNTEXT”
“nomeproduto”
Arroz
feijao
cafe
milho
batata
batata-doce
amendoim-com-coco
cafe-com-rapadura
doce-com-queijo
sendo que estes produtos é similar do que eu quero enviar para o banco
gostaria que fosse para o banco pulando estas linhas, más se não for póssivel pode
ser em uma única linha , desde que depois seja póssivel fazer a formatação no aplicativo para visualizar deste jeito.
E tambem gostaria de perguntar se alguem tem aki a numeração do teclado para programação, pois já procurei na net
e nção achei do jeito que quero, exemplo: a tecla ENTER É = 10 OK.
Lembrando que gostamos de desafios.
Obrigado todos voces.
no seu metodo de gravação da sua classe coloque null no primeiro parametro do insert Ex. insert into cliente values(null,x,y,z);o auto increment coloque como null que o mysql faz a parte dele.
boa noite, hoje estava com o mesmo problema e essa resposta do forum foi a solução, valeu