MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

MariaDB LAST_INSERT_ID() Dijelaskan

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyebarkan Database dan Cluster yang Sangat Tersedia dengan ClusterControl

  2. Bagaimana UNIX_TIMESTAMP() Bekerja di MariaDB

  3. Kurangi Sebulan dari Tanggal di MariaDB

  4. ClusterControl - Manajemen Cadangan Tingkat Lanjut - mariabackup Bagian I

  5. Menggunakan Mesin Penyimpanan MyRocks dengan Server MariaDB