none
Insert de varios produtos em uma mesma venda. RRS feed

  • 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á.

    terça-feira, 1 de maio de 2018 01:23

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;

    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);

    terça-feira, 1 de maio de 2018 01:47
  • 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.


    terça-feira, 1 de maio de 2018 02:02
  • 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.

    terça-feira, 1 de maio de 2018 02:20
  • 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;

    terça-feira, 1 de maio de 2018 14:38