Usuário com melhor resposta
Insert de varios produtos em uma mesma venda.

Pergunta
-
Pessoal estou com problemas em fazer um insert de varios produtos em uma venda existente.
Exemplo: insert into venda (id_venda, produto, valor) values('1','produto1', 99.0); // nessa mesma venda quero inserir o produto 2
insert into venda (id_venda, produto, valor) values (1, 'produto2', 95.0);
Mas na hora de fazer esse insert volta o erro informando que a entrada é duplicada para o id_venda.
Agradeço desde já.
Respostas
-
Foi exatamente o que tive que fazer.
Agradeço a ajuda!
create table item_venda(
id_item integer auto_increment primary key not null,
id_produto integer not null,
id_venda integer not null,
qtde_itens integer not null,
valor_item decimal unsigned not null,
constraint fk_venda_id foreign key(id_item)
references venda(id_venda)
)default charset = utf8 COLLATE utf8_general_ci;- Marcado como Resposta Arnaldo Medeiros Jr terça-feira, 1 de maio de 2018 14:38
Todas as Respostas
-
Ao que parece, o campo id_venda é a chave da tabela, para incluir um nova linha a chave deve ser diferente. Se for do tipo inteiro basta somar 1 no valor de id_venda.
insert into venda (id_venda, produto, valor) values (2, 'produto2', 95.0);
insert into venda (id_venda, produto, valor) values (3, 'produto N', 95.0);
-
Entendi o que vc quis dizer, do seu jeito eu gero uma venda diferente ao incrementar 1 no id, mas não é dessa forma que preciso fazer. Preciso cadastrar varios produtos em uma mesma venda. Como se fosse um cupom fiscal. Exemplo no id da venda 1 existem produto1, produto 2, produto 3.
- Editado Arnaldo Medeiros Jr terça-feira, 1 de maio de 2018 02:03
-
Entendo, mas se esta dando duplicidade é por que na estrutura da sua tabela o campo id_venda funciona como chave e não vai permite valores duplicados. Para esses casos eu costumo trabalhar com estrutura de "pai e filho"
venda (id_venda, produto, valor)
vendaitens (id_item, id_venda, produto, valor)Dessa forma, em vendaitens você pode ter N produtos relacionados a uma venda e acredito ser a forma mais correta e usual de criar um cadastro deste tipo. -
Foi exatamente o que tive que fazer.
Agradeço a ajuda!
create table item_venda(
id_item integer auto_increment primary key not null,
id_produto integer not null,
id_venda integer not null,
qtde_itens integer not null,
valor_item decimal unsigned not null,
constraint fk_venda_id foreign key(id_item)
references venda(id_venda)
)default charset = utf8 COLLATE utf8_general_ci;- Marcado como Resposta Arnaldo Medeiros Jr terça-feira, 1 de maio de 2018 14:38