Duvida em inserção sql

3 respostas
bruno_bls

e ai galera.

seguinte to com uma duvida aqui.

estou fazendo um programa de controle de estoque simples (entrada/saida) de produtos.

tenho 5 tabelas no PostgreSQL

PRODUTO()

VENDA(
     *venda_id;
       data;
       total;
)

I_VENDA(
     #venda_id;
     #pro_id;
       qtd;
       etc..
)

COMPRA()
 
I_COMPRA()

para que a inserção funcione eu preciso primeiro abrir uma venda( ou criar o registro venda"TABELA VENDA" no sql).
depois registrar os produtos na tabela i_venda e assim ligando-as por chave.

só que eu não sei como fazer o seguinte.

eu preciso da chave da tabela venda, pra que eu possa vincular os produtos na tabela i_venda.

eu pensei que poderia por ex. pegar o id do ultimo registro feito na tabela venda, então dar return com o numero da id.
mas não sei se da pra fazer isto.

existe uma maneira mais confiável de fazer isto?

3 Respostas

N

Nesse caso, acredito que daria certo listando todas os registros que vc precisa pra continuar, tipo um combox. Aí nesse combox vc teria informação sobre o nome de cada registro e seu respectivo ID.

Fabiano_Abreu

Olá Bruno,

Se a transação de inserção nas duas tabelas é a mesma, faça o que planejou, irá dar certo, se não, no momento na inserção na item, salve valores únicos da venda, por exemplo, cod cliente, data e hora do registro da venda e, obtenha o id através de um simples select.

Espero ter ajudado, abraços.

Fabiano Abreu
Papo SQL | Um blog com tutoriais, dicas e truques SQL

bruno_bls

bem eu consegui fazendo um select no banco.

select nextval('my_seq');

eu executo o nextval.
crio um registro de venda.

mas ocorre que ao consultar ele me retornar ex: id = 10

ao criar o registro ele cria como sendo id = 11

o proximo nextval me resulta em id=12

ou seja, a cada nextval ele incrementa a sequencia =/

Criado 9 de junho de 2013
Ultima resposta 10 de jun. de 2013
Respostas 3
Participantes 3