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

Masalah dengan MySql INSERT MAX()+1

Anda dapat menggunakan sesuatu seperti ini:

INSERT INTO users (user_id, name)
SELECT 1 + coalesce((SELECT max(user_id) FROM users WHERE name='Bob'), 0), 'Bob';

Tetapi kueri seperti itu dapat menyebabkan kondisi balapan. Pastikan Anda dalam transaksi dan Anda mengunci tabel pengguna sebelum menjalankannya. Jika tidak, Anda mungkin akan mendapatkan dua Bob dengan nomor yang sama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memuat kelas com.mysql.jdbc.Driver ... adalah pesan yang tidak digunakan lagi

  2. Temukan datetime terdekat dengan datetime yang ditentukan dalam kueri mysql

  3. Buat objek PHP secara dinamis berdasarkan string

  4. Bagaimana cara membuat daftar parameter prosedur tersimpan mysql

  5. Izin ditolak saat memasang volume Docker di OSX