Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida referente a uma tabela venda .

Dúvida referente a uma tabela venda a qual a mesma recebe duas chaves estrangeiras do cliente e do produto e na hora de inserir apresenta erro

public void add(Venda venda) {

        try {
            Connection connection = Conexao.getInstance().getConnection();

            String sql = "INSERT INTO VENDAS(DATACOMPRA,IDCLIENTE,IDPRODUTO,CODIGOCOMPRA) VALUES(?,?,?,?)";
            PreparedStatement statement =connection.prepareStatement(sql);
            statement.setString(1,venda.getData());
            statement.setInt(2, venda.getIdCliente());
            statement.setInt(3,venda.getIdProduto());
            statement.setInt(4,venda.getCodigoCompra());
            statement.execute();
            statement.close();
            connection.close();
        System.out.println("Venda Cadastrada com sucesso!");            

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


######TESTANDO#########

private void adicionaVenda() {


        System.out.println("Digite a data de compra: ");
        String data =Leitor.scanString();

        System.out.println("Digite o ID do cliente que fez a compra: ");
        int idCliente=Leitor.scanInt();

        System.out.println("Digite o ID do produto que deseja adquirir: ");
        int idProduto=Leitor.scanInt();

        System.out.println("Digite o Codigo de compra: ");
        int codigoCompra=Leitor.scanInt();

        Venda venda =new Venda( idCliente,  idProduto,  data,  codigoCompra);
        vendaDao.add(venda);


    }

ERRO : org.postgresql.util.PSQLException: ERROR: insert or update on table "vendas" violates foreign key constraint "vendas_idcliente_fkey"
  Detalhe: Key (idcliente)=(1) is not present in table "cliente".
2 respostas
solução!

Olá, Felipe. Tranquilo?

Na tabela Cliente, existe um registro com esse ID que você está tentando incluir na tabela Vendas? Se Vendas possui FKs de Cliente e Produto, os registros devem existir nessas tabelas antes de serem associados a tabela Vendas.

Eu tinha excluido varioa IDS sendo assim ficou fora de ordem hehe, mas obrigado :)