Pegar último ID de uma tabela no MySQL
06/03/2006
0
Estou com um enorme problema:
Preciso registrar venda e os produtos desta venda, relaciono tudo pelo ID da tabela venda.
So que preciso fazer isso tudo em 1 SQL, como faço para pegar o último ID da tabela de vendas?
abaixo estão as definições das tabelas para melhor ajudar o entendimento.
Tentei usar a função do MySQL mas ela não funcionou perfeitamente.
Quando a tabela de vendas, esta vazia ou com registros essa função funciona, mas se eu inserir registros e depois limpar a tabela a função volta a contagem para 0 enquando deveria continuar do (último ID + 1)...
Como posso resolver esse problema? Gostaria de resolver isso sem fazer ´gambiarras´ no código...
Ps. espero ter explicado corretamente meu problema...
Preciso registrar venda e os produtos desta venda, relaciono tudo pelo ID da tabela venda.
So que preciso fazer isso tudo em 1 SQL, como faço para pegar o último ID da tabela de vendas?
abaixo estão as definições das tabelas para melhor ajudar o entendimento.
CREATE TABLE VENDAS ( ID_VENDA DOUBLE NOT NULL AUTO_INCREMENT, MEDICOS_ID_MEDICO DOUBLE NULL, FUNCIONARIOS_ID_FUNCIONARIO DOUBLE NOT NULL, FORMASPAGTO_ID_FORMASPAGTO DOUBLE NOT NULL, CLIENTES_ID_CLIENTE DOUBLE NULL, VENDDTCADASTRO DATE NOT NULL, VENDHORACADASTRO TIME NOT NULL, VENDDTVENCIMENTO DATE NULL, VENDSUBTOTAL FLOAT(8,2) NOT NULL DEFAULT ´0´, VENDDESCONTO FLOAT(8,2) NOT NULL DEFAULT ´0´, VENDJURO FLOAT(8,2) NOT NULL DEFAULT ´0´, VENDTOTAL FLOAT(8,2) NOT NULL DEFAULT ´0´, VENDTOTALPAGO FLOAT(8,2) NOT NULL DEFAULT ´0´, VENDPAGO CHAR(4) NOT NULL DEFAULT ´NAO´, VENDDTPAGO DATE NULL, PRIMARY KEY(ID_VENDA), INDEX VENDAS_FKIndex1(CLIENTES_ID_CLIENTE), INDEX VENDAS_FKIndex2(FORMASPAGTO_ID_FORMASPAGTO), INDEX VENDAS_FKIndex3(FUNCIONARIOS_ID_FUNCIONARIO), INDEX VENDAS_FKIndex4(MEDICOS_ID_MEDICO) ); CREATE TABLE VENDASxPRODUTOS ( VENDAS_ID_VENDA DOUBLE NOT NULL, PRODUTOS_ID_PRODUTO DOUBLE NOT NULL, QTD INTEGER UNSIGNED NOT NULL DEFAULT ´0´, PRECO FLOAT(8,2) NOT NULL DEFAULT ´0´, DESCONTO FLOAT(8,2) NOT NULL DEFAULT ´0´, DESCONTO1 FLOAT(8,2) NOT NULL DEFAULT ´0´, JURO FLOAT(8,2) NOT NULL DEFAULT ´0´, JURO1 FLOAT(8,2) NOT NULL DEFAULT ´0´, TOTAL FLOAT(8,2) NOT NULL DEFAULT ´0´, PRIMARY KEY(VENDAS_ID_VENDA, PRODUTOS_ID_PRODUTO), INDEX VENDAS_has_PRODUTOS_FKIndex1(VENDAS_ID_VENDA), INDEX VENDAS_has_PRODUTOS_FKIndex2(PRODUTOS_ID_PRODUTO) );
Tentei usar a função do MySQL
LAST_INSERT_ID()
Quando a tabela de vendas, esta vazia ou com registros essa função funciona, mas se eu inserir registros e depois limpar a tabela a função volta a contagem para 0 enquando deveria continuar do (último ID + 1)...
Como posso resolver esse problema? Gostaria de resolver isso sem fazer ´gambiarras´ no código...
Ps. espero ter explicado corretamente meu problema...
Henry Lima
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)