Di MariaDB, LAST_INSERT_ID()
adalah fungsi bawaan yang mengembalikan nilai pertama yang dihasilkan secara otomatis yang berhasil dimasukkan untuk AUTO_INCREMENT
kolom sebagai hasil dari INSERT
yang terakhir dieksekusi pernyataan.
Itu juga dapat dipanggil dengan argumen, dalam hal ini, ia mengembalikan nilai ekspresi dan panggilan berikutnya ke LAST_INSERT_ID()
akan mengembalikan nilai yang sama.
Sintaks
Fungsi tersebut dapat dipanggil dengan cara berikut:
LAST_INSERT_ID()
LAST_INSERT_ID(expr)
Dimana expr
dikembalikan, dan panggilan berikutnya ke LAST_INSERT_ID()
akan mengembalikan nilai yang sama.
Contoh
Sebagai contoh, mari kita buat tabel dengan AUTO_INCREMENT
kolom:
CREATE TABLE guest (
guest_id INT NOT NULL AUTO_INCREMENT,
guest_name VARCHAR(255) NOT NULL,
PRIMARY KEY (guest_id)
);
guest_id
kolom menggunakan AUTO_INCREMENT
untuk nilainya.
Sekarang masukkan beberapa baris:
INSERT INTO guest (guest_name) VALUES ('Homer');
INSERT INTO guest (guest_name) VALUES ('Bart');
INSERT INTO guest (guest_name) VALUES ('Marge');
Sekarang mari kita jalankan LAST_INSERT_ID()
:
SELECT LAST_INSERT_ID();
Hasil:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 3 | +------------------+
Ini mengembalikan 3
.
Sekarang, kembalikan semua baris dalam tabel untuk memverifikasi bahwa baris terakhir memiliki AUTO_INCREMENT
nilai 3
dimasukkan:
SELECT *
FROM guest;
Hasil:
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | +----------+------------+
guest_id
kolom naik ke 3
.
Termasuk Argumen
Seperti yang disebutkan, jika dipanggil dengan argumen, fungsi mengembalikan nilai ekspresi dan panggilan berikutnya ke LAST_INSERT_ID()
akan mengembalikan nilai yang sama.
SELECT LAST_INSERT_ID(9);
Hasil:
+-------------------+ | LAST_INSERT_ID(9) | +-------------------+ | 9 | +-------------------+
Sekarang panggil lagi, tapi tanpa argumen:
SELECT LAST_INSERT_ID();
Hasil:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 9 | +------------------+
Itu masih mengembalikan nilai 9
.
Namun, jika kita terus memasukkan nilai ke dalam guest
tabel, AUTO_INCREMENT
akan melanjutkan di mana ia tinggalkan di tabel itu:
INSERT INTO guest (guest_name) VALUES ('Lisa');
Sekarang mari kita jalankan LAST_INSERT_ID()
:
SELECT LAST_INSERT_ID();
Hasil:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 4 | +------------------+
Ini mengembalikan 4
.
Dan inilah tampilan tabelnya sekarang:
SELECT *
FROM guest;
Hasil:
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | | 4 | Lisa | +----------+------------+
Untuk informasi lebih lanjut tentang fungsi ini, lihat dokumentasi MariaDB.