PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

JDBC के साथ अद्यतन के लिए चयन करें?

आप सबसे पहले for update add जोड़ें अपने चयन के लिए (और आपके अन्य कॉलम जिन्हें आप अपडेट करना चाहते हैं), और फिर आप उन्हें अपडेट करते हैं। साथ ही, जैसा कि टिप्पणियों में बताया गया है, सुनिश्चित करें कि आपका getConnection एक Connection देता है बिना ऑटोकॉमिट के। और आपको एक Statement सेट करना होगा स्क्रॉल करने के लिए टाइप करें और CONCUR_UPDATABLE . कुछ इस तरह,

String[] colNames = { "email", "already_linked", "account_link_timestamp" };
String query = "select " + Stream.of(colNames).collect(Collectors.joining(", "))
        + "from email_accounts where already_linked = false for update";
try (Connection conn = getConnection(); // Make sure conn.setAutoCommit(false);
        Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, 
                ResultSet.CONCUR_UPDATABLE);
        ResultSet rs = stmt.executeQuery(query)) {
    while (rs.next()) {
        // Get the current values, if you need them.
        String email = rs.getString(colNames[0]);
        boolean linked = rs.getBoolean(colNames[1]);
        Timestamp time = rs.getTimestamp(colNames[2]);
        // ...
        rs.updateBoolean(colNames[1], true);
        rs.updateTimestamp(colNames[2], //
                new Timestamp(System.currentTimeMillis()));
        rs.updateRow();
    }
} catch (SQLException e) {
    e.printStackTrace();
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql में किसी फ़ंक्शन में तालिका या पंक्तियों को कैसे पास करें?

  2. पोस्टग्रेज में क्वेरी से घंटा कैसे निकालें

  3. जब स्थिति <> सत्य होती है तो PostgreSQL शून्य मान क्यों नहीं लौटाता है?

  4. Node.js . के माध्यम से Postgres से संबंध कैसे बनाएं

  5. क्या गैर-अद्वितीय विशेषता पर सॉर्ट करने पर PostgreSQL ऑर्डर पूरी तरह से गारंटीकृत है?