Segue meu código, quando vou tentar salvar no banco ele ta erro de violação tenho duas tabelas uma de ‘Consulta’ e outra de pacientes na de consulta quero que puxe o nome do paciente da tabela paciente então coloque o id da tabela de pacientes como chave estrangeira na tabela consulta:
public void Salvar(BeansConsulta pac) {
conex.getConnection();
try {
PreparedStatement pst = conex.con.prepareStatement("insert into consulta (diagnostico_consulta, receita_consulta, paciente_nome, id_agenda_cod, id_consulta)values (?,?,?,?,?)");
pst.setString(1, cons.getDiagnostico());
pst.setString(2, cons.getReceitaConsulta());
pst.setString(3, cons.getNomePaciente());
pst.setInt(4, cons.getIdagendaCod());
pst.setInt(5, cons.getIdConsulta());
pst.execute();
JOptionPane.showMessageDialog(null, "Consulta salva com sucesso !");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao salvar consulta no banco" + ex);
}
conex.desconecta();
}
}
CREATE TABLE consulta
(
id_consulta serial NOT NULL,
id_agenda_cod integer,
diagnostico_consulta character varying(1000),
receita_consulta character varying(1000),
id_paciente_cod integer,
paciente_nome character varying(50),
CONSTRAINT consulta_pkey PRIMARY KEY (id_consulta),
CONSTRAINT consulta_id_agenda_cod_fkey FOREIGN KEY (id_agenda_cod)
REFERENCES agenda (agenda_cod) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT consulta_id_paciente_cod_fkey FOREIGN KEY (id_paciente_cod)
REFERENCES pacientes (pac_codigo) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION