Базовий синтаксис для SQL LAST_INSERT_ID дещо відрізняється залежно від системи бази даних:
- У MySQL і MariaDB: SELECT LAST_INSERT_ID();
- У SQL Server: SELECT SCOPE_IDENTITY();
- У PostgreSQL: SELECT lastval();
- У базі даних Oracle: SELECT your_sequence_name.CURRVAL FROM DUAL;
Отримання значення ідентифікації Функція LAST_INSERT_ID(). поверне останнє значення Identity після вставки у вказану таблицю.
Одним із найпоширеніших способів отримання ідентифікатора вставки є за допомогою функції LAST_INSERT_ID().. Ця функція повертає автоматично згенерований ідентифікатор останньої операції вставки в поточному сеансі. INSERT INTO table_name (column1, column2) VALUES (value1, value2); SELECT LAST_INSERT_ID();
LAST_INSERT_ID() (без аргументів) повертає перше автоматично згенероване значення, успішно вставлене для стовпця AUTO_INCREMENT в результаті останнього виконаного оператора INSERT. Значення LAST_INSERT_ID() залишається незмінним, якщо жоден рядок не вставлено.
Використовуйте таблицю для створення порядкових номерів, як це: mysql> UPDATE послідовність SET id=LAST_INSERT_ID(id+1); mysql> SELECT LAST_INSERT_ID(); Оператор UPDATE збільшує лічильник послідовності та змушує наступний виклик LAST_INSERT_ID() повертати оновлене значення. Інструкція SELECT отримує це значення.
Щоб отримати значення відразу після INSERT, використовуйте запит SELECT із функцією LAST_INSERT_ID().. Наприклад, використовуючи Connector/ODBC, ви повинні виконати два окремих оператори, оператор INSERT і запит SELECT, щоб отримати значення автоматичного збільшення.