Pessoal estou desenvolvendo um sistema que tem codigo de venda, e codigo de item de venda
Quero que apareça o codigo de venda 1 e codigo de item de venda 1, e de acordo com que vou adicionando quero que apareça assim 1.2, 1.3, 1.4
Mas ele dá erro pois esse “1” é primary key e não pode duplicar o valor de uma primary key
Minha pergunta é como posso duplicar um valor de uma primary key ?
Detalhe uso o banco de dados PostgreSql e o Netbenas
Não se duplica uma primary key, isso é quebra de integridade!
F
felipe1234
então como faço para gerar o valor de uma primary key duplicada ?
P
pmlm
Tens de dar mais detalhe sobre o que pretendes. Como estão neste momento as tuas tabelas?
F
felipe1234
tenho uma tabela item_venda com primary key item_id serial auto
e outra com venda com primary key ven_id integer
Toda vez que adiconar o cod_venda ela vai trazer pra mim o codigo da venda e o, codigo do item de venda.
Exemplo adicionei apareceu
Codigo de venda Codigo de item de venda
1 1
pois fiz o inner join peguei o codigo do item que me gerou sozinho devido estar auto.
Agora quero adicionar outro “Mas sem mudar o 1 do codigo de venda”
Exemplo:
Codigo de venda Codigo de item de venda
1 2
Codigo de venda Codigo de item de venda
1 3
Codigo de venda Codigo de item de venda
1 4
…
P
pmlm
Pelo que descreves, esse cenário funciona porque a PK da tua tabela de item é o item_id e não o ven_id (que não muda nem precisa mudar). De certeza que o erro não é por outro qualquer motivo?
F
felipe1234
então pra esse cenario que te descrevi dar certo o que precisaria fazer
P
pmlm
Pelo que descreveste nada. Já deveria funcionar. O que podes ter problemas é ao gerar a segunda venda, onde o primeiro item será continuidade do primeiro e não novamente 1. Para teres 1-1, 1-2, 1-3 depois 2-1, 2-2 e 3-1, 3-2, 3-3, 3-4 e sucessivamente necessitas de uma chave composta com ven_id e item_id.
M
marco_andre
Cara, como @pmlm falou, vc precisa de uma chave composto por ven_id e item_id. Dessa forma, vc vai conseguir fazer a sequência que vc deseja.
Explicação:
Pelo que vc falou a tabela venda possui um relacionamento um-para-muitos com a tabela item_venda (1 venda possui muitos itens. 1 item vendido pertence a 1 venda).
Dessa forma, vc deve gerar uma tabela criar uma chave estrangeira no lado N do seu relacionamento (venda), sendo que a chave dessa tabela deve ser composta pela PK das duas tabelas