Auto incremento no Delphi com MySQL

13/03/2017

28

Novo por aqui, tenho a seguinte dúvida: como faço para gerar ID automático no Delphi? Uso o Banco MySQL. Atualmente já uso uma função para fazer isso, mas gostaria de saber como transferir essa responsabilidade para o Banco, embora eu deixa o campo ID como Auto incremento, se eu não passar o valor valor do ID através da função que eu chamo ele vai requerer que o campo campo id seja repassado também. Desde já agradeço.
Obs: já Coloquei a Propriedade Requerid do ID como Falso
Responder

Post mais votado

14/03/2017

Boa tarde Edivania.

Para criar uma tabela no MySQL que gere um campo id com auto incremento basta incluir o comando "auto_increment".


CREATE TABLE XPTO (
  ID INTEGER NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
);




Supondo que seu campo já exista e já tenha valores nele use isso para iniciar de um valor específico.


ALTER TABLE XPTO AUTO_INCREMENT=1001;



Grande abraço
Responder

Mais Posts

14/03/2017

Raylan Zibel

Qual componente, ou conjunto de componentes, está usando?
Responder

14/03/2017

Jones Granatyr

Opa! Se você utilizar os componentes da paleta FireDAC não precisa configurar nada. É só definir o campo autoincremento no banco de dados e os próprios componentes farão o trabalho (use FDConnection e FDQuery)
Responder

14/03/2017

Marcus Soares

Edivania,

O MySQL já faz o auto incremento sozinho.

Talvez a alteração necessária esteja no código da sua função. Por que é obrigatório informar o ID para criar um registro ?
Responder

15/03/2017

Edivania

Obrigado pelas dicas, eu uso um trio de componentes, SetDataSet, DataSetProvider e ClientDataSet, consegui resolver o problema colocando a propriedade requerid do meu campo id como falso tanto, no clientdaset quanto no setdaset, o problema era que eu tinha colocado falso apenas no clientdaset. o resto já estava ok no banco, porém agora surgiu outro problema, e aproveitando a oportunidade por aqui, alguém poderia me informar como relacionar tabelas com chave primaria e estrangeira? Na Realidade já fiz essa relação no Banco mas o devo fazer no delphi?
Responder

03/09/2017

Luiz Santos

Boa tarde Edvania.
Você só precisa tomar cuidado com a Integridade Referencial.
Por exemplo, antes de excluir um registro na tabela pai (a que cede a chave) verificar se a tabela filha (a que recebe a chave) possui algum registro vinculado.
O mesmo vale para o INSERT.

Espero ter ajudado.

Grande abraço
Responder

12/09/2017

Edivania

Obrigado pela dia dica
Responder
ola tudo bem pessoal preciso de ajuda desenvolvi um programa de cadastro de cliente com ficha de seguimento para o cadastro do trator dai tudo bem porem quando salvo os dados o id do cadastro de trator fica negativo alguem pode me ajudar
Responder

10/07/2020

Edivania

ola tudo bem pessoal preciso de ajuda desenvolvi um programa de cadastro de cliente com ficha de seguimento para o cadastro do trator dai tudo bem porem quando salvo os dados o id do cadastro de trator fica negativo alguem pode me ajudar


Como você está atribuindo o Id?
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar