ERRO: Relação "estados" não existe. Position: 13

11 respostas
Douglas_Santos

Alguém poderia me ajudar com esse erro, por não fazer a conexão com o Banco de dados?

private void jButton3SalvarActionPerformed(java.awt.event.ActionEvent evt) {

try {

PreparedStatement pst = conecta.conn.prepareStatement(insert into estados(nome_estado, uf_estado)values(?, ?));//passagem do sql para inserção de dados

pst.setString(1, jTextField2Nome.getText());//passagem de parametros

pst.setString(2, jTextField3UF.getText());

pst.executeUpdate();//executa a inserção

JOptionPane.showMessageDialog(rootPane, Salvo com sucesso);

} catch (SQLException ex) {

JOptionPane.showMessageDialog(rootPane, ex);

}

}

11 Respostas

Rodrigo_Void

Sempre que postar algum código, poste como “código” usando a opção </> do editor.
Oq vc quis dizer com “por não fazer a conexão com o Banco de dados?”?

Se o erro é “Relação “estados” não existe.” vc tem uma conexão, pois quem responde isso é o próprio banco.
O erro não menciona conexão. Diz q a tabela não existe.

Douglas_Santos

Mas criei a tabela no pgAdmin III com o mesmo nome da tabela, alem de ter os mesmos nomes da coluna.

campelo.m

post a ddl da tabela estados

Rodrigo_Void

Cara, ai já não sei, mas eu não duvido da mensagem do banco. É fato que no local onde vc conectou não existe esta tabela.

Douglas_Santos

Desculpe, mas onde acho a dll?

campelo.m

No pgadmin basta clicar na tabela e ao lado “SQL pane” vais mostrar a ddl.
Faça o que o @Rodrigo_Void disse tambem, verifique se voce esta conectado no banco certo!

Douglas_Santos
CREATE TABLE Restaurante.estados

(

id_estado serial NOT NULL,

nome_estado character varying(50),

uf_estado character varying(2),

CONSTRAINT pk_estado PRIMARY KEY (id_estado)

)

WITH (

OIDS=FALSE

);

ALTER TABLE Restaurante.estados

OWNER TO postgres;

try {

PreparedStatement pst = conecta.conn.prepareStatement(insert into estados(nome_estado, uf_estado)values(?, ?));//passagem do sql para inserção de dados

pst.setString(1, jTextField2Nome.getText());//passagem de parametros

pst.setString(2, jTextField3UF.getText());

pst.executeUpdate();//executa a inserção

JOptionPane.showMessageDialog(rootPane, Salvo com sucesso);

} catch (SQLException ex) {

JOptionPane.showMessageDialog(rootPane, ex);

}

Fiz a conexão toda, mas nao deu em nada

campelo.m

Voce tem um schema ‘Restaurante’ definido na tabela estados, entao na hora de voce fazer o insert voce tbm tem que passar ele se nao ele vai entender que é pra usar o schema padrao, no caso o ‘public’.
Seu sql tem que ser usado assim:

insert into Restaurante.estados (nome_estado, uf_estado) values (?, ?)
Rodrigo_Void

vc precisa definir o esquema ou na frente do nome da tabela ou tbm pode pra conexão toda.

Douglas_Santos

Deu o mesmo erro com Restaurante.estados. Como renomear o nome da tabela dentro do banco pra eu deixar somente estados?

Rodrigo_Void

Vc deve estar conectando em outro lugar. Primeiramente GARANTA que estás conectando no local onde a tabela existe.
Manda o código q vc ta usando pra conectar.
E posta tbm algum print da estrutura completa do banco onde pega o nome DO BANCO e das tabelas.

Criado 13 de novembro de 2017
Ultima resposta 16 de nov. de 2017
Respostas 11
Participantes 3