Saya punya pertanyaan MySQL yang menurut saya harus cukup mudah. Saya perlu mengembalikan ID TERAKHIR TERAKHIR dari table1 ketika saya menjalankan permintaan MySql berikut:
INSERT INTO table1 (title,userid) VALUES ('test',1);
INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(),4,1);
SELECT LAST_INSERT_ID();
Seperti yang Anda mengerti kode saat ini hanya akan mengembalikan ID INSERT TERAKHIR dari table2 bukan table1, bagaimana saya bisa mendapatkan id dari table1 bahkan jika saya memasukkan ke table2 antara?
mysql
insert
last-insert-id
Martin
sumber
sumber
Karena Anda benar-benar menyimpan LAST_INSERT_ID () sebelumnya ke tabel kedua, Anda bisa mendapatkannya dari sana:
sumber
Ini memungkinkan Anda untuk memasukkan baris ke 2 tabel yang berbeda dan membuat referensi ke kedua tabel juga.
sumber
Saya memiliki masalah yang sama di bash dan saya melakukan sesuatu seperti ini:
yang berfungsi dengan baik :-) Tapi
tidak bekerja Karena setelah perintah pertama, shell akan keluar dari mysql dan login lagi untuk perintah kedua, dan kemudian variabel @last_insert_id tidak disetel lagi. Solusi saya adalah:
Mungkin seseorang mencari solusi bash :-)
sumber
LAST_INSERT_ID
hanya tersedia untuk koneksi aktif.#mysq
-perintah terhubung untuk setiap perintah. Anda dapat terhubung denganmysql
perintah ke server dan menyisipkan kueri Anda, atau Anda dapat membuat file teks dan Andamysql
perintah dengan mengarahkan dari file txt aliasmysql [connection option] < txt.file
Kami hanya memiliki satu orang yang memasukkan catatan, jadi saya menjalankan permintaan berikut segera setelah memasukkan:
Ini mengambil id terakhir dari database.
sumber
Tanpa solusi InnoDB: Anda dapat menggunakan prosedur
don't forgot to set the the delimiter for storing the procedure with ;
Dan Anda bisa menggunakannya ...
sumber
Apakah mungkin untuk menyimpan variabel last_id_in_table1 ke dalam variabel php untuk menggunakannya nanti?
Dengan last_id ini saya perlu melampirkan beberapa catatan di tabel lain dengan last_id ini, jadi saya perlu:
1) Lakukan INSERT dan dapatkan last_id_in_table1
2) Untuk setiap baris yang tidak ditentukan di tabel lain, MEMPERBARUI baris-baris ini dengan last_id_insert yang dibuat di sisipan.
sumber
Alih-alih ini
LAST_INSERT_ID()
coba gunakan yang inisumber
Untuk yang terakhir dan yang terakhir:
sumber
Hanya untuk menambahkan untuk posting Rodrigo, alih-alih LAST_INSERT_ID () dalam permintaan Anda dapat menggunakan SELECT MAX (id) FROM table1 ;, tetapi Anda harus menggunakan (),
sumber
Jika Anda perlu memiliki dari mysql, setelah permintaan Anda, id penambahan otomatis terakhir tanpa permintaan lain, masukkan kode Anda:
sumber