【问题标题】:How can I fix this Java with PostgreSQL error (table does not exist)?如何使用 PostgreSQL 错误修复此 Java(表不存在)?
【发布时间】:2019-04-28 01:16:18
【问题描述】:

我在 PostgreSQL 10 和 NetBeans 8.2 IDE 上工作。

我需要将值插入到我的 Postgres 表中,但我无法插入。

我的 java 代码。

String url = "jdbc:postgresql://localhost:5432/postgres";
String user = "postgres";
String password = "1111"; 
String status=Status,when=When,code=Code,msg=Msg,description=Description,elapsed=Elapsed,mhs_av=MHS_av,mhs_5s=MHS_5s,mhs_1m=MHS_1m,mhs_5m=MHS_5m,mhs_15m=MHS_15m,found_blocks=Found_Blocks,getworks=Getworks,accepted=Accepted,rejected=Rejected;
String hardware_errors=Hardware_Errors,utility=Utility,discarded=Discarded,stale=Stale,get_failures=Get_Failures,local_work=Local_Work,remote_failures=Remote_Failures;
String network_blocks=Network_Blocks,total_mh=Total_MH,work_utility=Work_Utility,difficulty_accepted=Difficulty_Accepted,difficulty_rejected=Difficulty_Rejected,difficulty_stale=Difficulty_Stale;
String best_share=Best_Share,device_hardware=Device_Hardware,device_rejected=Device_Rejected,pool_rejected=Pool_Rejected,pool_stale=Pool_Stale,last_getwork=Last_Getwork;

String query = "INSERT INTO SUMMARY(status,whn,code,msg,description,elapsed,mhs_av,mhs_5s,mhs_1m,mhs_5m,mhs_15m,found_blocks,get_works,accepted,rejected,"
        + "hardware_errors,utility,discarded,stale,get_failures,local_work,remote_failures,network_blocks,total_mh,work_utility,difficulty_accepted,difficulty_rejected,"
        + "difficulty_stale,best_share,device_hardware,device_rejected,pool_rejected,pool_stale,last_getwork) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

try (Connection con = DriverManager.getConnection(url, user, password);
                PreparedStatement pst = con.prepareStatement(query)) {
                pst.setString(1,status);
                pst.setString(2,when); pst.setString(3, code);  pst.setString(4, msg); pst.setString(5,description); pst.setString(6,elapsed); pst.setString(7, mhs_av); pst.setString(8, mhs_5s);
                pst.setString(9,mhs_1m); pst.setString(10, mhs_5m); pst.setString(11, mhs_15m); pst.setString(12, found_blocks); pst.setString(13, getworks); pst.setString(14, accepted);
                pst.setString(15, rejected); pst.setString(16, hardware_errors); pst.setString(17,utility); pst.setString(18, discarded); pst.setString(19, stale); pst.setString(20, get_failures);
                pst.setString(21, local_work); pst.setString(22, remote_failures); pst.setString(23, network_blocks); pst.setString(24, total_mh); pst.setString(25, work_utility); 
                pst.setString(26, difficulty_accepted); pst.setString(27, difficulty_rejected); pst.setString(28, difficulty_stale); pst.setString(29, best_share); 
                pst.setString(30, device_hardware); pst.setString(31, device_rejected); pst.setString(32, pool_rejected); pst.setString(33, pool_stale); pst.setString(34, last_getwork);
                pst.executeUpdate();

                } catch (SQLException ex) {

                    Logger lgr = Logger.getLogger(Parse.class.getName());
                    lgr.log(Level.SEVERE, ex.getMessage(), ex);
                }

我总是收到这个错误

2018 年 2 月 26 日下午 2:32:44 parse.summary sum 严重:错误:关系“摘要”不存在 职位:13 org.postgresql.util.PSQLException:错误:关系“摘要”不存在 职位:13 在 org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2440) 在 org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183) 在 org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:308) 在 org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441) 在 org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365) 在 org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:143) 在 org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:120) 在 parse.summary.sum(summary.java:46) 在 parse.Parse.display(Parse.java:323) 在 parse.Parse.process(Parse.java:960) 在 parse.Parse.(Parse.java:981) 在 parse.Parse.main(Parse.java:1007)

【问题讨论】:

  • Java 代码String status=Status,when=When,code=Code,msg=.... 甚至无法编译。另外:您也可以添加翻译后的错误消息吗?特别是部分:HATA: "summary" nesnesi mevcut değil
  • 我得到了我的主类的那些字符串值。错误文本:错误:“摘要”不存在
  • 错误说明了一切。表“摘要”不存在。
  • 你应该检查你是否已经创建了你的“总结”表——通常,你不会在postgres数据库中这样做,而是创建一个自己的数据库(然后调整你的连接URL)
  • 如果您可以用英文发布错误消息...

标签: java postgresql jdbc sql-insert


【解决方案1】:

错误信息可能是由多种原因引起的:

  1. 您连接到错误的主机、端口或数据库,并且那里没有表summary

  2. 您在正确的数据库中,但表 summary 的架构不在您的 search_path 上。

  3. 你在正确的数据库中,search_path 是正确的,但是表没有被称为summary。请记住,PostgreSQL 会将所有未加引号的标识符折叠为小写。因此,如果您的表名为SummarySUMMARY,请将其称为"Summary""SUMMARY"

【讨论】:

    【解决方案2】:

    我解决了这个问题。我的表名在数据库的“”操作中。

    我这样使用\"summary\"

    String query = "INSERT INTO  \"Summary\"(status,whn,code,msg,description,elapsed,mhs_av,mhs_5s,mhs_1m,mhs_5m,mhs_15m,found_blocks,get_works,accepted,rejected,"
        + "hardware_errors,utility,discarded,stale,get_failures,local_work,remote_failures,network_blocks,total_mh,work_utility,difficulty_accepted,difficulty_rejected,"
        + "difficulty_stale,best_share,device_hardware,device_rejected,pool_rejected,pool_stale,last_getwork) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
    

    `

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 2014-01-16
      • 2022-09-30
      • 1970-01-01
      • 1970-01-01
      • 2021-04-14
      相关资源
      最近更新 更多