MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

MariaDB LAST_INSERT_ID () Wyjaśnione

W MariaDB, LAST_INSERT_ID() to wbudowana funkcja, która zwraca pierwszą wygenerowaną automatycznie wartość pomyślnie wstawioną dla AUTO_INCREMENT kolumna w wyniku ostatnio wykonanego INSERT oświadczenie.

Można go również wywołać z argumentem, w którym to przypadku zwraca wartość wyrażenia i następne wywołanie LAST_INSERT_ID() zwróci tę samą wartość.

Składnia

Funkcję można wywołać w następujący sposób:

LAST_INSERT_ID()
LAST_INSERT_ID(expr)

Gdzie expr zwracane jest następne wywołanie LAST_INSERT_ID() zwróci tę samą wartość.

Przykład

Jako przykład stwórzmy tabelę z AUTO_INCREMENT kolumna:

CREATE TABLE guest (
  guest_id INT NOT NULL AUTO_INCREMENT,
  guest_name VARCHAR(255) NOT NULL,
  PRIMARY KEY (guest_id)
);

guest_id kolumna używa AUTO_INCREMENT za jego wartość.

Teraz wstaw kilka wierszy:

INSERT INTO guest (guest_name) VALUES ('Homer');
INSERT INTO guest (guest_name) VALUES ('Bart');
INSERT INTO guest (guest_name) VALUES ('Marge');

Teraz uruchommy LAST_INSERT_ID() :

SELECT LAST_INSERT_ID();

Wynik:

+------------------+
| LAST_INSERT_ID() |
+------------------+
|                3 |
+------------------+

Zwraca 3 .

Teraz zwróćmy wszystkie wiersze w tabeli, aby sprawdzić, czy ostatni wiersz zawiera AUTO_INCREMENT wartość 3 wstawiono:

SELECT *
FROM guest;

Wynik:

+----------+------------+
| guest_id | guest_name |
+----------+------------+
|        1 | Homer      |
|        2 | Bart       |
|        3 | Marge      |
+----------+------------+

guest_id kolumna wzrasta do 3 .

W tym argument

Jak wspomniano, jeśli zostanie wywołana z argumentem, funkcja zwraca wartość wyrażenia i następne wywołanie LAST_INSERT_ID() zwróci tę samą wartość.

SELECT LAST_INSERT_ID(9);

Wynik:

+-------------------+
| LAST_INSERT_ID(9) |
+-------------------+
|                 9 |
+-------------------+

Teraz zadzwoń ponownie, ale bez argumentów:

SELECT LAST_INSERT_ID();

Wynik:

+------------------+
| LAST_INSERT_ID() |
+------------------+
|                9 |
+------------------+

Nadal zwraca wartość 9 .

Jeśli jednak nadal będziemy wstawiać wartości do naszego guest tabela, AUTO_INCREMENT będzie kontynuowane tam, gdzie zostało przerwane na tym stole:

INSERT INTO guest (guest_name) VALUES ('Lisa');

Teraz uruchommy LAST_INSERT_ID() :

SELECT LAST_INSERT_ID();

Wynik:

+------------------+
| LAST_INSERT_ID() |
+------------------+
|                4 |
+------------------+

Zwraca 4 .

A oto jak teraz wygląda stół:

SELECT *
FROM guest;

Wynik:

+----------+------------+
| guest_id | guest_name |
+----------+------------+
|        1 | Homer      |
|        2 | Bart       |
|        3 | Marge      |
|        4 | Lisa       |
+----------+------------+

Więcej informacji na temat tej funkcji można znaleźć w dokumentacji 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. MariaDB ROUND() kontra PODŁOGA()

  2. Jak działa krok JSONPath Wildcard (**) w MariaDB

  3. Jak wyświetlić wszystkie procedury składowane w MariaDB?

  4. Jak działa UUID() w MariaDB

  5. Odejmij mikrosekundy od wartości daty i godziny w MariaDB