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

(mysql, php) Bagaimana cara mendapatkan nilai bidang auto_increment sebelum memasukkan data?

Nilai peningkatan otomatis dihasilkan oleh database itu sendiri, saat penyisipan selesai; yang berarti Anda tidak bisa mendapatkannya sebelum melakukan kueri penyisipan yang sebenarnya.

Solusi yang Anda usulkan bukanlah solusi yang sering digunakan -- yaitu :

  • masukkan beberapa data yang setengah kosong
  • dapatkan nilai peningkatan otomatis yang telah dibuat
  • lakukan perhitungan Anda, menggunakan nilai peningkatan otomatis
  • perbarui baris untuk menempatkan data baru/lengkap pada tempatnya -- menggunakan peningkatan otomatis yang dibuat sebelumnya di where klausa update kueri, untuk mengidentifikasi baris mana yang sedang diperbarui.

Tentu saja, sebagai tindakan pencegahan keamanan, semua operasi ini harus dilakukan dalam transaksi (untuk memastikan perilaku "semua atau tidak sama sekali")


Sebagai pseudo-code :

begin transaction
insert into your table (half empty values);
$id = get last autoincrement id
do calculations
update set data = full data where id = $id
commit transaction


  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 Errno 150

  2. 4 Cara Mengganti NULL dengan Nilai Berbeda di MySQL

  3. Bisakah saya menyimpan gambar di MySQL

  4. MySQL bergabung dengan klausa where

  5. Cara Memantau Database MySQL/MariaDB menggunakan Netdata di CentOS 7