MariaDB
 sql >> база данни >  >> RDS >> MariaDB

MariaDB LAST_INSERT_ID() Обяснено

В MariaDB, LAST_INSERT_ID() е вградена функция, която връща първата автоматично генерирана стойност, успешно вмъкната за AUTO_INCREMENT колона в резултат на най-скоро изпълнения INSERT изявление.

Може също да бъде извикан с аргумент, в който случай връща стойността на израза и следващото извикване на LAST_INSERT_ID() ще върне същата стойност.

Синтаксис

Функцията може да бъде извикана по следните начини:

LAST_INSERT_ID()
LAST_INSERT_ID(expr)

Където expr се връща и следващото извикване на LAST_INSERT_ID() ще върне същата стойност.

Пример

Като пример, нека създадем таблица с AUTO_INCREMENT колона:

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

guest_id колоната използва AUTO_INCREMENT за стойността му.

Сега поставете няколко реда:

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

Сега нека изпълним LAST_INSERT_ID() :

SELECT LAST_INSERT_ID();

Резултат:

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

Връща 3 .

Сега нека върнем всички редове в таблицата, за да проверим дали последният ред има AUTO_INCREMENT стойност на 3 вмъкнато:

SELECT *
FROM guest;

Резултат:

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

guest_id колона се увеличава до 3 .

Включително аргумент

Както споменахме, ако е извикана с аргумент, функцията връща стойността на израза и следващото извикване на LAST_INSERT_ID() ще върне същата стойност.

SELECT LAST_INSERT_ID(9);

Резултат:

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

Сега го извикайте отново, но без аргумент:

SELECT LAST_INSERT_ID();

Резултат:

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

Той все още връща стойност от 9 .

Въпреки това, ако продължим да вмъкваме стойности в нашия guest таблицата, AUTO_INCREMENT ще продължи там, където е спрял на тази маса:

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

Сега нека изпълним LAST_INSERT_ID() :

SELECT LAST_INSERT_ID();

Резултат:

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

Връща 4 .

А ето как изглежда таблицата сега:

SELECT *
FROM guest;

Резултат:

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

За повече информация относно тази функция вижте документацията на 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. Управление на SSL ключове и криптиране на MySQL данни при пренасяне

  2. Увеличаване на базата данни Moodle

  3. Galera Cluster Recovery 101 - Дълбоко потапяне в мрежовото разделяне

  4. Как TIMESTAMPDIFF() работи в MariaDB

  5. Как работи GREATEST() в MariaDB