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

MySQL - JDBC - CHỌN và XÓA cùng lúc

Nếu bạn muốn CHỌN của mình chặn các lần đọc tiếp theo trên hàng đó cho đến khi bạn xóa hàng đó, như Mark đã chỉ ra trong nhận xét của mình, bạn cần phải

  • kích hoạt giao dịch (setAutoCommit(false) )
  • đặt cô lập giao dịch thành SERIALIZABLE và
  • sử dụng SELECT ... FOR UPDATE

Mã mẫu này phù hợp với tôi:

conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
conn.setAutoCommit(false);

Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT token_id FROM tokens ORDER BY token_id LIMIT 1 FOR UPDATE");
rs.next();
int token_id = rs.getInt("token_id");
System.out.printf("Got %d.%n", token_id);
PreparedStatement ps = conn.prepareStatement("DELETE FROM tokens WHERE token_id=?");
ps.setInt(1, token_id);
ps.executeUpdate();
conn.commit();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi không thể khởi động MySQL Server từ dòng lệnh trong windows

  2. Nhóm kết nối DB cơ bản với Java và Tomcat 7

  3. Truy vấn được nhóm để chỉ tìm một bản ghi (worker_id =1 hoặc null)

  4. Nhóm MySQL theo mục nhập cuối cùng

  5. Cách hiển thị 0 khi không có dữ liệu