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

Apakah secara konseptual benar untuk melakukan SELECT MAX(id) dll. untuk menemukan baris yang dimasukkan terakhir?

Ini tampaknya subjektif, tetapi saya akan mengatakan tidak, itu tidak benar secara konseptual, karena:

  • Anda ingin baris yang terakhir disisipkan
  • tetapi kueri Anda melihat id maksimum nilai

Ya, ada beberapa hubungan antara id maks dan penyisipan terbaru, tetapi pertimbangkan hal berikut:

  • bagaimana jika baris yang terakhir disisipkan telah dihapus?

Jawaban di MySQL:Anda mendapatkan hasil yang berbeda. Perhatikan bahwa bahkan tidak harus ada multithreading atau beberapa proses agar ini gagal. Itu karena mereka adalah dua hal yang berbeda (yang memang sering menghasilkan hasil yang sama).

select max(id) from <tablename>

vs

select last_insert_id()

(Tebak mana yang benar.)

@Dems menunjukkan bahwa OP ambigu. Saya akan mengklarifikasi poin utama saya:

Kita berbicara tentang tiga informasi yang berbeda:

  • maksimum id nilai
  • id baris yang terakhir dimasukkan, khusus untuk sesi
  • id baris yang terakhir dimasukkan ke dalam tabel (terlepas dari sesinya)

Hal yang berbahaya adalah terkadang, menanyakan satu pertanyaan akan memberikan jawaban yang benar untuk pertanyaan lain -- tetapi tidak selalu .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL Insert Dimana Tidak Ada dengan PDO

  2. Bagaimana cara menghubungkan mySQL di proyek Android saya?

  3. Bagaimana cara menginisialisasi container mysql saat dibuat di Kubernetes?

  4. Cara Mengaktifkan Cache Permintaan MySQL

  5. MYSQL menunjukkan baris yang salah saat menggunakan GROUP BY