Erro ao alterar registro na tabela

Consigo alterar manualmente, porém no projeto da erro…

O Erro:

Cannot add or update a child row: a foreign key constraint fails (sistema.veiculo, CONSTRAINTveiculo_ibfk_1FOREIGN KEY (fk_idassociado) REFERENCESassociado(ID_ASSOCIADO`) ON DELETE CASCADE)

tela editar:

     try{
        Associado associado = new Associado();
        Veiculo veiculo = new Veiculo();
        VeiculoDao vdao = new VeiculoDao();

        veiculo.setIdveiculo(Integer.parseInt(idveiculo.getText()));

        veiculo.setPlaca(placa.getText());
        veiculo.setRenavam(renavam.getText());
        veiculo.setMarca(marca.getText());
        veiculo.setModelo(modelo.getText());
        veiculo.setChassi(chassi.getText());
        veiculo.setAno(Integer.parseInt(ano.getText()));
        veiculo.setCor(cor.getText());

        veiculo.setAssociado(veiculo.getAssociado());

        veiculo.setAssociado(associado);

        vdao.alterarVeiculo(veiculo);
}catch (Exception ex){
     Logger.getLogger(Edit_Veiculo.class.getName()).log(Level.SEVERE, null, ex);
           JOptionPane.showMessageDialog(null, "Erro ao alterar.");
}

tabelas:

CREATE TABLE `associado` (
  `ID_ASSOCIADO` int(255) NOT NULL,
  `NOME` varchar(50) NOT NULL,
  `CPF` varchar(14) NOT NULL,
  `RG` varchar(13) NOT NULL,
  `CELULAR` int(30) NOT NULL,
  `TELEFONE` int(30) NOT NULL,
  `DATA_NASC` varchar(10) NOT NULL,
  `ESTADO` char(2) NOT NULL,
  `CIDADE` varchar(50) NOT NULL,
  `CEP` int(9) NOT NULL,
  `ENDERECO` varchar(50) NOT NULL,
  `BAIRRO` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `veiculo` (
  `idveiculo` int(11) NOT NULL,
  `fk_idassociado` int(11) NOT NULL,
  `placa` varchar(7) NOT NULL,
  `renavam` varchar(11) NOT NULL,
  `marca` varchar(100) NOT NULL,
  `modelo` varchar(50) NOT NULL,
  `chassi` varchar(8) NOT NULL,
  `ano` int(4) NOT NULL,
  `cor` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `associado`
  ADD PRIMARY KEY (`ID_ASSOCIADO`);


ALTER TABLE `veiculo`
  ADD PRIMARY KEY (`idveiculo`),
  ADD KEY `fk_idassociado` (`fk_idassociado`);

 ALTER TABLE `veiculo`
      MODIFY `idveiculo` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18;
    
ALTER TABLE `veiculo`
      ADD CONSTRAINT `veiculo_ibfk_1` FOREIGN KEY (`fk_idassociado`) REFERENCES `associado` (`ID_ASSOCIADO`)
      ON DELETE CASCADE;

Você verificou se o id do associado que está tentando incluir/alterar na tabela veículo é um id válido e existente na tabela de associados?

1 curtida

Sim, é válido…