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

Apa cara standar untuk mendapatkan id sisipan terakhir?

Lihat jawaban ini Ambil ID baris yang dimasukkan dalam SQL

Singkatnya, tidak ada cara lintas basis data untuk melakukan ini, kecuali MAX(ID) - tetapi itu bukan hasil yang dijamin dan memiliki banyak jebakan, mis.

  • sisipan lain dapat berada di antara sisipan terakhir dan kueri maksimal
  • tidak dapat digunakan dengan tabel transaksi tinggi (maks akan mengeluarkan kunci baca, metode khusus rdbms tidak membaca dari tabel mana pun)

Standar ANSI yang terkait dengan identity/autonumber/auto_increment/sequences pertama kali muncul di SQL:2003 menunggu implementasi oleh semua RDBMS utama. Kemungkinan besar akan menyerupai urutan Oracle/PostgreSQL.

Perubahan lain dalam SQL:2003 adalah OUTPUT USING CLAUSE tapi sangat sedikit informasi tentangnya. Sybase dan SQL Server telah melakukan hal yang berbeda dengannya, jadi belum jelas bagaimana hasilnya. SQL Server mengimplementasikannya sebagai

INSERT INTO TBL(..)
OUTPUT inserted.identity_col
INTO @sometablevar
VALUES(..)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masukkan ke tabel Mysql saat pengguna menutup browser?

  2. Apa yang salah dengan kueri mysql ini?

  3. MYSQL TINYBLOB vs LONGBLOB

  4. Loop sementara bagian dalam tidak berfungsi

  5. PDO::ERRMODE_EXCEPTION tidak menekan peringatan