Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL - JDBC - PILIH dan HAPUS secara bersamaan

Jika Anda ingin SELECT Anda memblokir pembacaan berikutnya pada baris itu hingga Anda menghapusnya, seperti yang ditunjukkan Mark dalam komentarnya, Anda harus

  • aktifkan transaksi (setAutoCommit(false) )
  • setel isolasi transaksi ke SERIALIZABLE, dan
  • gunakan SELECT ... FOR UPDATE

Kode contoh ini berfungsi untuk saya:

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. Perbedaan Antara Skema / Basis Data di MySQL

  2. Hitung hari antara dua tanggal, tidak termasuk akhir pekan (hanya MySQL)

  3. Mengapa PDO::lastInsertId mengembalikan 0?

  4. RoR:bagaimana cara menguji aplikasi saya terhadap banyak basis data?

  5. SELECT + INSERT + Query Cache =MySQL terkunci