PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

chọn để cập nhật với JDBC?

Trước tiên, bạn thêm for update vào lựa chọn của bạn (và các cột khác của bạn mà bạn muốn cập nhật), và sau đó bạn cập nhật chúng. Ngoài ra, như đã lưu ý trong các nhận xét, hãy đảm bảo rằng getConnection của bạn trả về một Connection không có autocommit. Và bạn cần đặt Statement nhập để cuộn và CONCUR_UPDATABLE . Một cái gì đó như,

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. ngủ đông - Postgres- danh sách mục tiêu có thể có nhiều nhất 1664 mục nhập

  2. Lợi ích của PostgreSQL

  3. Tạo cơ sở dữ liệu Postgres bằng cách sử dụng tệp hàng loạt với [mẫu], [mã hóa], [chủ sở hữu] và tệp .sql

  4. Python psql \ sao chép CSV vào máy chủ từ xa

  5. Lỗi thời gian chờ H12 liên tục cho tất cả các yêu cầu chạy truy vấn cơ sở dữ liệu