Problemas com chave estrangeira

2 respostas
rapha.java

Estou com dúvidas quanto a chaves estrangeiras, no meu código tenho q pegar as informações da tela jsp e gravar no BD, isso pra mim não era problemas a não ser pela chave estrangeira, na minha base tem um campo chamado id_heliponto que é uma chave estrangeira da tabela tb_heliponto, mas ao tentar gravar no banco é mostrado o erro a seguir:

Código:
public void criarPousoDecolagem(PousoDecolagemModel model)
			throws SQLException {
		// fazer format da data
		sql = "insert into tb_pouso_decolagem (nm_autori,dt_pouso, hr_pouso, nm_pes_visit,"
				+ " lcl_visit, end, serv_recep, id_heliponto) values (?,?,?,?,?,?,?,?) ";

		stmt = getCon.prepareStatement(sql);
		stmt.setString(1, model.getAutorizante());
		stmt.setDate(2, null);//provisorio
		stmt.setDate(3, null);//provisorio
		stmt.setString(4, model.getVisitado());
		stmt.setString(5, "local visitado");
		stmt.setString(6, "colocar variavel para setar");
		stmt.setBoolean(7, true);
		stmt.setInt(8, 1);//qual parametro passar ?

		stmt.executeUpdate();
		stmt.close();
		getCon.close();

		System.out.println("Método...");
Erro:
javax.servlet.ServletException: #{bean.testeButton }: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

2 Respostas

Hebert_Coelho

Vc não precisa duplicar seu post. http://www.guj.com.br/java/260140-duvida-com-foreign-key

Na verdade é ate pior pois tudo que foi feito no outro post para te ajudar poderia ser repetido aqui.

Vá no seu ultimo post, e coloque uma frase tipo: “Alguma idéia?”

Pq caso alguém possa ajudar, não irá repetir tudo o que já foi dito.

drsmachado

O erro se refere à uma inconsistência.
A coluna id_heliponto não possui um valor compatível com o informado.
Isto quer dizer, caso ela esteja recebendo algum valor, pode ser que este valor seja diferente de todos os id_heliponto que estão cadastrados ou não há nenhum heliponto cadastrado.

Como corrigir? Bom, geralmente FKs podem ser nullable, ou seja, você pode passar null como valor, assim, evita essa validação de constraint.
Só não esqueça de atualizar quando inserir helipontos

Criado 8 de dezembro de 2011
Ultima resposta 8 de dez. de 2011
Respostas 2
Participantes 3